commit b9a4746b54cd4159941e4bb4650d75cb26a84a25
Author: Oswald Buddenhagen <o...@users.sf.net>
Date:   Mon Jul 4 18:03:24 2022 +0200

    don't refresh progress counters pointlessly
    
    the mainloop-based refresh timer keeps spinning even if there is no
    update. overload stats_steps to signal whether a refresh is needed.
    
    amends 8fbc4323.

 src/main_sync.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/main_sync.c b/src/main_sync.c
index 88baae2..24a88c9 100644
--- a/src/main_sync.c
+++ b/src/main_sync.c
@@ -43,9 +43,11 @@ print_stats( void )
 static void
 stats_timeout( void *aux ATTR_UNUSED )
 {
-       stats_steps = -1;
+       if (stats_steps != -1) {
+               stats_steps = -1;
+               print_stats();
+       }
        conf_wakeup( &stats_wakeup, 200 );
-       print_stats();
 }
 
 void
@@ -55,8 +57,10 @@ stats( void )
                return;
 
        // If the main loop appears to be running, skip the sync path.
-       if (stats_steps < 0)
+       if (stats_steps < 0) {
+               stats_steps = -2;
                return;
+       }
 
        // Rate-limit the (somewhat) expensive timer queries.
        if (++stats_steps < 10)


_______________________________________________
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel

Reply via email to