This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch master
in repository evisum.

View the commit online.

commit fe6ff80b08c5ceb199ebdededb81c3085c39398d
Author: Alastair Poole <[email protected]>
AuthorDate: Fri May 22 03:32:39 2026 +0100

    process_list: don't update summary 1/10
---
 src/bin/ui/evisum_ui_process_list.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/src/bin/ui/evisum_ui_process_list.c b/src/bin/ui/evisum_ui_process_list.c
index d69d8c6..a53ed87 100644
--- a/src/bin/ui/evisum_ui_process_list.c
+++ b/src/bin/ui/evisum_ui_process_list.c
@@ -1329,6 +1329,18 @@ _evisum_ui_process_list_search_trim(Eina_List *list, Evisum_Ui_Process_List_View
     return list;
 }
 
+static int
+_evisum_ui_process_list_poll_delay_get(Evisum_Ui_Process_List_View *view) {
+    int delay_secs = INTERVAL_NORMAL;
+
+    if (view && view->ui) delay_secs = view->ui->proc.poll_delay;
+    if (delay_secs < INTERVAL_NORMAL) delay_secs = INTERVAL_NORMAL;
+    else if (delay_secs > INTERVAL_SLOW)
+        delay_secs = INTERVAL_SLOW;
+
+    return delay_secs;
+}
+
 static Eina_List *
 _evisum_ui_process_list_get(Evisum_Ui_Process_List_View *view) {
     Eina_List *list;
@@ -1355,6 +1367,7 @@ _evisum_ui_process_list_process_list(void *data, Ecore_Thread *thread) {
     Proc_Info *proc;
     uint64_t seq = 0;
     Eina_Bool first_run = EINA_TRUE;
+    double last_live_update_time = 0.0;
 
     view = data;
 
@@ -1370,6 +1383,7 @@ _evisum_ui_process_list_process_list(void *data, Ecore_Thread *thread) {
     while (!ecore_thread_check(thread)) {
         Eina_Bool history_live, history_pending;
         Eina_Bool history_loaded = EINA_FALSE;
+        Eina_Bool forced_update;
         uint32_t history_time;
 
         _evisum_ui_process_list_history_state_get(view, &history_live, &history_pending, &history_time);
@@ -1405,7 +1419,20 @@ _evisum_ui_process_list_process_list(void *data, Ecore_Thread *thread) {
         } else if (!first_run && !view->skip_wait) {
             if (!evisum_background_update_wait(&seq)) continue;
         }
+        forced_update = first_run || view->skip_wait;
         view->skip_wait = 0;
+
+        if (history_live && !forced_update) {
+            double update_time = ecore_time_get();
+            int delay_secs = _evisum_ui_process_list_poll_delay_get(view);
+
+            if ((last_live_update_time > 0.0) &&
+                ((update_time - last_live_update_time) < ((double) delay_secs - 0.05)))
+                continue;
+            last_live_update_time = update_time;
+        } else if (history_live)
+            last_live_update_time = ecore_time_get();
+
         list = _evisum_ui_process_list_get(view);
         if (!list) {
             if (!history_live) ecore_thread_feedback(thread, NULL);

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to