[geary/wip/search-fixes: 8/14] Fix occasional infinite filling in ConversationMonitor



commit 27bf9623056b317b1615e0c06fccfde89fd7b27b
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]