diff options
author | Jon Turney <jon.turney@dronecode.org.uk> | 2017-03-21 19:17:42 +0000 |
---|---|---|
committer | Jon Turney <jon.turney@dronecode.org.uk> | 2017-03-27 22:03:58 +0100 |
commit | d0a359f6d2aa1f6253c96b10f710d9cb321e7600 (patch) | |
tree | f938171cac854a2ded8e02b0f0ebe7e56734e81a /winsup/cygwin/fhandler_proc.cc | |
parent | b568f92c505aaa923160eca93935995dd6b88b16 (diff) | |
download | cygnal-d0a359f6d2aa1f6253c96b10f710d9cb321e7600.tar.gz cygnal-d0a359f6d2aa1f6253c96b10f710d9cb321e7600.tar.bz2 cygnal-d0a359f6d2aa1f6253c96b10f710d9cb321e7600.zip |
Implement getloadavg()
v2:
autoload PerfDataHelper functions
Keep loadavg in shared memory
Guard loadavg access by a mutex
Initialize loadavg to the current load
v3:
Shared memory version bump isn't needed if we are only extending it
Remove unused autoload
Mark inititalized flags as NO_COPY for correct behaviour in fork child
Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
Diffstat (limited to 'winsup/cygwin/fhandler_proc.cc')
-rw-r--r-- | winsup/cygwin/fhandler_proc.cc | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/winsup/cygwin/fhandler_proc.cc b/winsup/cygwin/fhandler_proc.cc index 2a8cf1427..a7e816fe8 100644 --- a/winsup/cygwin/fhandler_proc.cc +++ b/winsup/cygwin/fhandler_proc.cc @@ -418,7 +418,7 @@ static off_t format_proc_loadavg (void *, char *&destbuf) { extern int get_process_state (DWORD dwProcessId); - unsigned running = 0; + unsigned int running = 0; winpids pids ((DWORD) 0); for (unsigned i = 0; i < pids.npids; i++) @@ -429,9 +429,13 @@ format_proc_loadavg (void *, char *&destbuf) break; } + double loadavg[3] = { 0.0, 0.0, 0.0 }; + getloadavg (loadavg, 3); + destbuf = (char *) crealloc_abort (destbuf, 48); - return __small_sprintf (destbuf, "%u.%02u %u.%02u %u.%02u %u/%u\n", - 0, 0, 0, 0, 0, 0, running, pids.npids); + return sprintf (destbuf, "%.2f %.2f %.2f %u/%u\n", + loadavg[0], loadavg[1], loadavg[2], running, + (unsigned int)pids.npids); } static off_t |