summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/fhandler_proc.cc
diff options
context:
space:
mode:
authorJon Turney <jon.turney@dronecode.org.uk>2017-03-21 19:17:42 +0000
committerJon Turney <jon.turney@dronecode.org.uk>2017-03-27 22:03:58 +0100
commitd0a359f6d2aa1f6253c96b10f710d9cb321e7600 (patch)
treef938171cac854a2ded8e02b0f0ebe7e56734e81a /winsup/cygwin/fhandler_proc.cc
parentb568f92c505aaa923160eca93935995dd6b88b16 (diff)
downloadcygnal-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.cc10
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