[geary/mjog/invert-folder-class-hierarchy: 34/72] Geary.ImapEngine.MinimalFolder: Clean up and simplify close_remote




commit e6384c81d4fa0999fec6e2dbd0da81ba3125197c
Author: Michael Gratton <mike vee net>
Date:   Tue Feb 16 10:05:14 2021 +1100

    Geary.ImapEngine.MinimalFolder: Clean up and simplify close_remote

 .../imap-engine/imap-engine-minimal-folder.vala    | 40 ++++++++--------------
 1 file changed, 15 insertions(+), 25 deletions(-)
---
diff --git a/src/engine/imap-engine/imap-engine-minimal-folder.vala 
b/src/engine/imap-engine/imap-engine-minimal-folder.vala
index 3c0c4a1b3..62e079104 100644
--- a/src/engine/imap-engine/imap-engine-minimal-folder.vala
+++ b/src/engine/imap-engine/imap-engine-minimal-folder.vala
@@ -770,39 +770,29 @@ private class Geary.ImapEngine.MinimalFolder : BaseObject,
     }
 
     /**
-     * Closes the folder and the remote session.
+     * Closes the folder's current remote session, if any.
      */
     private async void close_remote_session() {
         lock (this.remote_session) {
-            if (this.remote_session != null) {
-                yield this.close_remote_locked();
+            var session = this.remote_session;
+            if (session != null) {
+                this.remote_cancellable.cancel();
+                this.email_prefetcher.close();
+                this.update_flags_timer.reset();
+                this.replay_queue.stop_remote();
+                this.remote_session = null;
+
+                session.appended.disconnect(on_remote_appended);
+                session.updated.disconnect(on_remote_updated);
+                session.removed.disconnect(on_remote_removed);
+                session.disconnected.disconnect(on_remote_disconnected);
+
+                yield this._account.release_folder_session(session);
                 debug("Remote closed");
             }
         }
     }
 
-    /**
-     * Unhooks the IMAP folder session and returns it to the account.
-     */
-    private async void close_remote_locked() {
-        // Stop any internal tasks from running
-        this.remote_cancellable.cancel();
-        this.email_prefetcher.close();
-        this.update_flags_timer.reset();
-        this.replay_queue.stop_remote();
-
-        var session = this.remote_session;
-        this.remote_session = null;
-        if (session != null) {
-            session.appended.disconnect(on_remote_appended);
-            session.updated.disconnect(on_remote_updated);
-            session.removed.disconnect(on_remote_removed);
-            session.disconnected.disconnect(on_remote_disconnected);
-            yield this._account.release_folder_session(session);
-        }
-
-    }
-
     private void on_email_complete(Gee.Collection<Geary.EmailIdentifier> email_ids) {
         this.account.email_complete(email_ids);
     }


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