[geary/wip/only-incomplete] Don't reestablish broken connection if folder closed later



commit d7056cd81126c775fd19bed82a89a5e7ceb4bcb0
Author: Jim Nelson <jim yorba org>
Date:   Fri Apr 25 10:02:36 2014 -0700

    Don't reestablish broken connection if folder closed later

 .../imap-engine/imap-engine-minimal-folder.vala    |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)
---
diff --git a/src/engine/imap-engine/imap-engine-minimal-folder.vala 
b/src/engine/imap-engine/imap-engine-minimal-folder.vala
index 851cc4c..1e337bd 100644
--- a/src/engine/imap-engine/imap-engine-minimal-folder.vala
+++ b/src/engine/imap-engine/imap-engine-minimal-folder.vala
@@ -816,12 +816,17 @@ private class Geary.ImapEngine.MinimalFolder : Geary.AbstractFolder, Geary.Folde
                 folder.reestablish_delay_msec);
             
             yield Scheduler.sleep_ms_async(folder.reestablish_delay_msec);
-            // double now, reset to init value when cleanly opened
-            folder.reestablish_delay_msec = (folder.reestablish_delay_msec * 2).clamp(
-                DEFAULT_REESTABLISH_DELAY_MSEC, MAX_REESTABLISH_DELAY_MSEC);
             
             try {
-                yield folder.open_async(OpenFlags.NO_DELAY, null);
+                if (folder.open_count > 0) {
+                    // double now, reset to init value when cleanly opened
+                    folder.reestablish_delay_msec = (folder.reestablish_delay_msec * 2).clamp(
+                        DEFAULT_REESTABLISH_DELAY_MSEC, MAX_REESTABLISH_DELAY_MSEC);
+                    
+                    yield folder.open_async(OpenFlags.NO_DELAY, null);
+                } else {
+                    debug("%s: Not reestablishing broken connection, folder was closed", folder.to_string());
+                }
             } catch (Error err) {
                 debug("Error reestablishing broken connection to %s: %s", folder.to_string(), err.message);
             }


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