[geary/wip/search-fixes: 6/10] Fix occasional infinite filling in ConversationMonitor



commit 0ebf7ad2dc9e8fb61b671c5c86675e2f891d157b
Author: Michael Gratton <mike vee net>
Date:   Mon Aug 5 18:32:05 2019 +1000

    Fix occasional infinite filling in ConversationMonitor
    
    Add successive fill operations via idle callbacks so that the monitor
    doesn't get stuck immediately queuing and executing another fill op
    when the first one doesn't return any mesages.

 src/engine/app/app-conversation-monitor.vala | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
---
diff --git a/src/engine/app/app-conversation-monitor.vala b/src/engine/app/app-conversation-monitor.vala
index 14d5ff55..c7ceed4d 100644
--- a/src/engine/app/app-conversation-monitor.vala
+++ b/src/engine/app/app-conversation-monitor.vala
@@ -365,7 +365,12 @@ public class Geary.App.ConversationMonitor : BaseObject {
         if (this.is_monitoring &&
             this.can_load_more &&
             this.conversations.size < this.min_window_count) {
-            this.queue.add(new FillWindowOperation(this));
+            GLib.Idle.add(
+                () => {
+                    this.queue.add(new FillWindowOperation(this));
+                    return GLib.Source.REMOVE;
+                }
+            );
         }
     }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]