[geary/wip/search-fixes: 23/27] Fix occasional infinite filling in ConversationMonitor



commit 99ea5c2b6a14620ca24b381c7d8f0037a73b2e9c
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]