[PATCH] default ps -W process start time to system boot time when inaccessible, 0, -1

Corinna Vinschen corinna-cygwin@cygwin.com
Sat Mar 23 17:04:00 GMT 2019


Hi Brian,

On Mar 22 21:45, Brian Inglis wrote:
> 
> diff --git a/winsup/utils/ps.cc b/winsup/utils/ps.cc
> index 4fce3e0b3..c81805ab6 100644
> --- a/winsup/utils/ps.cc
> +++ b/winsup/utils/ps.cc
> @@ -337,6 +337,17 @@ main (int argc, char *argv[])
>  		p->start_time = to_time_t (&ct);
>  	      CloseHandle (h);
>  	    }
> +	  if (!h || 0 == p->start_time || -1 == p->start_time)

          if (!h || !p->start_time)

should be sufficient.  cygwin_internal(CW_GETPINFO_FULL) memsets the
struct returned to all 0 before filling it with available data.

> +	    {
> +	      SYSTEM_TIMEOFDAY_INFORMATION stodi;
> +	      status = NtQuerySystemInformation (SystemTimeOfDayInformation,
> +					(PVOID) &stodi, sizeof stodi, NULL);
> +	      if (!NT_SUCCESS (status))
> +		fprintf (stderr,
> +			"NtQuerySystemInformation(SystemTimeOfDayInformation), "
> +					"status %08x", status);
> +	      p->start_time = to_time_t ((FILETIME*)&stodi.BootTime);
> +	    }
>  	}
>  
>        char uname[128];
> -- 
> 2.17.0

Wouldn't it make sense to fetch SystemTimeOfDayInformation only once
and then just set p->start_time above?


Thanks,
Corinna

-- 
Corinna Vinschen
Cygwin Maintainer
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin-patches/attachments/20190323/12951463/attachment.sig>


More information about the Cygwin-patches mailing list