[geary/mjog/invert-folder-class-hierarchy: 34/72] Geary.ImapEngine.MinimalFolder: Clean up and simplify close_remote
- From: Michael Gratton <mjog src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [geary/mjog/invert-folder-class-hierarchy: 34/72] Geary.ImapEngine.MinimalFolder: Clean up and simplify close_remote
- Date: Wed, 3 Mar 2021 11:52:45 +0000 (UTC)
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]