[geary/mjog/user-plugins: 17/26] Application.PluginManager: Add close method
- From: Michael Gratton <mjog src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [geary/mjog/user-plugins: 17/26] Application.PluginManager: Add close method
- Date: Tue, 17 Mar 2020 08:25:40 +0000 (UTC)
commit 03331fd231e09d36ca39d879fde3dc10383912bb
Author: Michael Gratton <mike vee net>
Date: Tue Mar 10 13:00:16 2020 +1100
Application.PluginManager: Add close method
Add close method, call it from the controller when shutting down, so
that plugins are actually deactivated and can release resources.
src/client/application/application-controller.vala | 5 +++++
src/client/application/application-plugin-manager.vala | 6 ++++++
2 files changed, 11 insertions(+)
---
diff --git a/src/client/application/application-controller.vala
b/src/client/application/application-controller.vala
index 556da0ad..47143389 100644
--- a/src/client/application/application-controller.vala
+++ b/src/client/application/application-controller.vala
@@ -303,6 +303,11 @@ internal class Application.Controller : Geary.BaseObject {
// Release general resources now there's no more UI
this.notifications.clear_folders();
+ try {
+ this.plugins.close();
+ } catch (GLib.Error err) {
+ warning("Error closing plugin manager: %s", err.message);
+ }
this.avatars.close();
this.pending_mailtos.clear();
this.composer_widgets.clear();
diff --git a/src/client/application/application-plugin-manager.vala
b/src/client/application/application-plugin-manager.vala
index 30ab8666..e052d0c0 100644
--- a/src/client/application/application-plugin-manager.vala
+++ b/src/client/application/application-plugin-manager.vala
@@ -139,4 +139,10 @@ public class Application.PluginManager : GLib.Object {
return unloaded;
}
+ internal void close() throws GLib.Error {
+ this.is_shutdown = true;
+ this.plugins.set_loaded_plugins(null);
+ this.folders_factory.destroy();
+ }
+
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]