summaryrefslogtreecommitdiffstats
path: root/LoadAverageMeter.c
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2014-11-27 19:57:24 -0200
committerHisham Muhammad <hisham@gobolinux.org>2014-11-27 19:57:24 -0200
commit529095607cd9941116c92bdc4cd52e5cc50ac415 (patch)
tree96b6ece02297f3f7562ca82c08dc158d43dfdea5 /LoadAverageMeter.c
parentca03094bb2d60c6ee1558bd2bcfb9038244b38cb (diff)
Isolate cross-platform code for load average.
Diffstat (limited to 'LoadAverageMeter.c')
-rw-r--r--LoadAverageMeter.c20
1 files changed, 3 insertions, 17 deletions
diff --git a/LoadAverageMeter.c b/LoadAverageMeter.c
index 850f8029..3ccd6c09 100644
--- a/LoadAverageMeter.c
+++ b/LoadAverageMeter.c
@@ -8,8 +8,7 @@ in the source distribution for its full text.
#include "LoadAverageMeter.h"
#include "CRT.h"
-
-#include <assert.h>
+#include "Platform.h"
/*{
#include "Meter.h"
@@ -21,21 +20,8 @@ int LoadAverageMeter_attributes[] = {
int LoadMeter_attributes[] = { LOAD };
-static inline void LoadAverageMeter_scan(double* one, double* five, double* fifteen) {
- int activeProcs, totalProcs, lastProc;
- *one = 0; *five = 0; *fifteen = 0;
- FILE *fd = fopen(PROCDIR "/loadavg", "r");
- if (fd) {
- int total = fscanf(fd, "%32lf %32lf %32lf %32d/%32d %32d", one, five, fifteen,
- &activeProcs, &totalProcs, &lastProc);
- (void) total;
- assert(total == 6);
- fclose(fd);
- }
-}
-
static void LoadAverageMeter_setValues(Meter* this, char* buffer, int size) {
- LoadAverageMeter_scan(&this->values[2], &this->values[1], &this->values[0]);
+ Platform_getLoadAverage(&this->values[2], &this->values[1], &this->values[0]);
snprintf(buffer, size, "%.2f/%.2f/%.2f", this->values[2], this->values[1], this->values[0]);
}
@@ -52,7 +38,7 @@ static void LoadAverageMeter_display(Object* cast, RichString* out) {
static void LoadMeter_setValues(Meter* this, char* buffer, int size) {
double five, fifteen;
- LoadAverageMeter_scan(&this->values[0], &five, &fifteen);
+ Platform_getLoadAverage(&this->values[0], &five, &fifteen);
if (this->values[0] > this->total) {
this->total = this->values[0];
}

© 2014-2024 Faster IT GmbH | imprint | privacy policy