netstar pushed a commit to branch master. http://git.enlightenment.org/apps/evisum.git/commit/?id=58a039a820448c966470821636fcf46da47c5ba5
commit 58a039a820448c966470821636fcf46da47c5ba5 Author: Alastair Poole <nets...@gmail.com> Date: Sun May 16 10:54:11 2021 +0100 background: move this to its own namespace. --- src/bin/background/evisum_background.c | 78 ++++++++++++++++++++++++++++++++++ src/bin/background/evisum_background.h | 9 ++++ src/bin/background/meson.build | 4 ++ src/bin/main.c | 77 +-------------------------------- src/bin/meson.build | 1 + src/bin/ui/ui_process_list.c | 9 +--- 6 files changed, 95 insertions(+), 83 deletions(-) diff --git a/src/bin/background/evisum_background.c b/src/bin/background/evisum_background.c new file mode 100644 index 0000000..3440ac8 --- /dev/null +++ b/src/bin/background/evisum_background.c @@ -0,0 +1,78 @@ +#include "evisum_background.h" +#include "../system/filesystems.h" +#include "../ui/evisum_ui.h" + +#include <Eina.h> + +void +background_poller_cb(void *data, Ecore_Thread *thread) +{ + meminfo_t memory; + power_t power; + int32_t poll_count = 0; + Battery *bat; + Evisum_Ui *ui = data; + + system_memory_usage_get(&memory); + ui->mem_total = memory.total; + ui->mem_used = memory.used; + + system_power_state_get(&power); + if (power.battery_count) + { + ui->have_power = power.have_ac; + for (int i = 0; i < power.battery_count; i++) + { + if (!power.batteries[i]->present) continue; + bat = calloc(1, sizeof(Battery)); + bat->index = i; + snprintf(bat->model, sizeof(bat->model), "%s", power.batteries[i]->model); + snprintf(bat->vendor, sizeof(bat->vendor), "%s", power.batteries[i]->vendor); + bat->usage = power.batteries[i]->percent; + ui->batteries = eina_list_append(ui->batteries, bat); + } + } + system_power_state_free(&power); + + while (!ecore_thread_check(thread)) + { + int ncpu; + double percent = 0.0; + cpu_core_t **cores = system_cpu_usage_delayed_get(&ncpu, 250000); + for (int i = 0; i < ncpu; i++) + { + percent += cores[i]->percent; + free(cores[i]); + } + free(cores); + + system_memory_usage_get(&memory); + ui->mem_used = memory.used; + if (file_system_in_use("ZFS")) + ui->mem_used += memory.zfs_arc_used; + + ui->cpu_usage = percent / system_cpu_online_count_get(); + + if ((!(poll_count % 4)) && (ui->batteries)) + { + Eina_List *l; + system_power_state_get(&power); + ui->have_power = power.have_ac; + for (int i = 0; i < power.battery_count; i++) + { + if (!power.batteries[i]->present) continue; + l = eina_list_nth_list(ui->batteries, i); + if (!l) continue; + bat = eina_list_data_get(l); + bat->usage = power.batteries[i]->percent; + } + system_power_state_free(&power); + } + + poll_count++; + } + + EINA_LIST_FREE(ui->batteries, bat) + free(bat); +} + diff --git a/src/bin/background/evisum_background.h b/src/bin/background/evisum_background.h new file mode 100644 index 0000000..7c4935a --- /dev/null +++ b/src/bin/background/evisum_background.h @@ -0,0 +1,9 @@ +#ifndef EVISUM_BACKGROUND_H +#define EVISUM_BACKGROUND_H + +#include <Ecore.h> + +void +background_poller_cb(void *data, Ecore_Thread *thread); + +#endif diff --git a/src/bin/background/meson.build b/src/bin/background/meson.build new file mode 100644 index 0000000..3ec6fd8 --- /dev/null +++ b/src/bin/background/meson.build @@ -0,0 +1,4 @@ +src += files([ + 'evisum_background.c', + 'evisum_background.h', +]) diff --git a/src/bin/main.c b/src/bin/main.c index 2df45ca..a775006 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -8,7 +8,7 @@ #include "evisum_config.h" #include "evisum_server.h" #include "ui/evisum_ui.h" -#include "system/filesystems.h" +#include "background/evisum_background.h" static Eina_Bool _shutdown_cb(void *data, int type, void *event EINA_UNUSED) @@ -30,79 +30,6 @@ _signals(Evisum_Ui *ui) ui->handler_sig = ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, _shutdown_cb, ui); } -// XXX!!! -static void -_background_poller_cb(void *data, Ecore_Thread *thread) -{ - meminfo_t memory; - power_t power; - int32_t poll_count = 0; - Battery *bat; - Evisum_Ui *ui = data; - - system_memory_usage_get(&memory); - ui->mem_total = memory.total; - ui->mem_used = memory.used; - - system_power_state_get(&power); - if (power.battery_count) - { - ui->have_power = power.have_ac; - for (int i = 0; i < power.battery_count; i++) - { - if (!power.batteries[i]->present) continue; - bat = calloc(1, sizeof(Battery)); - bat->index = i; - snprintf(bat->model, sizeof(bat->model), "%s", power.batteries[i]->model); - snprintf(bat->vendor, sizeof(bat->vendor), "%s", power.batteries[i]->vendor); - bat->usage = power.batteries[i]->percent; - ui->batteries = eina_list_append(ui->batteries, bat); - } - } - system_power_state_free(&power); - - while (!ecore_thread_check(thread)) - { - int ncpu; - double percent = 0.0; - cpu_core_t **cores = system_cpu_usage_delayed_get(&ncpu, 250000); - for (int i = 0; i < ncpu; i++) - { - percent += cores[i]->percent; - free(cores[i]); - } - free(cores); - - system_memory_usage_get(&memory); - ui->mem_used = memory.used; - if (file_system_in_use("ZFS")) - ui->mem_used += memory.zfs_arc_used; - - ui->cpu_usage = percent / system_cpu_online_count_get(); - - if ((!(poll_count % 4)) && (ui->batteries)) - { - Eina_List *l; - system_power_state_get(&power); - ui->have_power = power.have_ac; - for (int i = 0; i < power.battery_count; i++) - { - if (!power.batteries[i]->present) continue; - l = eina_list_nth_list(ui->batteries, i); - if (!l) continue; - bat = eina_list_data_get(l); - bat->usage = power.batteries[i]->percent; - } - system_power_state_free(&power); - } - - poll_count++; - } - - EINA_LIST_FREE(ui->batteries, bat) - free(bat); -} - int elm_main(int argc, char **argv) { @@ -182,7 +109,7 @@ elm_main(int argc, char **argv) evisum_server_init(ui); evisum_ui_activate(ui, action, pid); - ui->background_poll_thread = ecore_thread_run(_background_poller_cb, NULL, NULL, ui); + ui->background_poll_thread = ecore_thread_run(background_poller_cb, NULL, NULL, ui); ecore_main_loop_begin(); diff --git a/src/bin/meson.build b/src/bin/meson.build index 78aa290..4ed10a7 100644 --- a/src/bin/meson.build +++ b/src/bin/meson.build @@ -4,6 +4,7 @@ src = [] subdir('system') subdir('ui') +subdir('background') src += files([ 'main.c', diff --git a/src/bin/ui/ui_process_list.c b/src/bin/ui/ui_process_list.c index 184a1b6..eaa0fd7 100644 --- a/src/bin/ui/ui_process_list.c +++ b/src/bin/ui/ui_process_list.c @@ -1285,15 +1285,8 @@ _process_list_feedback_cb(void *data, Ecore_Thread *thread EINA_UNUSED, eina_list_free(real); #endif -#if 0 - printf("active %d and inactive %d => %d (realized)\n", - eina_list_count(wd->cache->active), - eina_list_count(wd->cache->inactive), n); -#endif if (wd->first_run) - { - _first_run_tasks(wd); - } + _first_run_tasks(wd); wd->poll_count++; --