From d5df185ac6435a46e4640e1d63a235f2cd00fd2b Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Fri, 9 Aug 2019 09:07:58 +0000 Subject: [PATCH] cpu: make getCpuLoad more portable ../include/modules/cpu.hpp:4:10: fatal error: 'sys/sysinfo.h' file not found #include ^~~~~~~~~~~~~~~ --- include/modules/cpu.hpp | 2 +- src/modules/cpu.cpp | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/include/modules/cpu.hpp b/include/modules/cpu.hpp index 32883952..1b490faf 100644 --- a/include/modules/cpu.hpp +++ b/include/modules/cpu.hpp @@ -1,7 +1,7 @@ #pragma once #include -#include +#include #include #include #include diff --git a/src/modules/cpu.cpp b/src/modules/cpu.cpp index a0f646f5..79b84d52 100644 --- a/src/modules/cpu.cpp +++ b/src/modules/cpu.cpp @@ -23,11 +23,9 @@ auto waybar::modules::Cpu::update() -> void { } uint16_t waybar::modules::Cpu::getCpuLoad() { - struct sysinfo info = {0}; - if (sysinfo(&info) == 0) { - float f_load = 1.F / (1U << SI_LOAD_SHIFT); - uint16_t load = info.loads[0] * f_load * 100 / get_nprocs(); - return load; + double load[1]; + if (getloadavg(load, 1) != -1) { + return load[0] * 100 / sysconf(_SC_NPROCESSORS_ONLN); } throw std::runtime_error("Can't get Cpu load"); }