summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2018-09-22 22:53:24 +0200
committerCarlos Garnacho <carlosg@gnome.org>2018-09-26 14:06:56 +0200
commita60c66a3bd1882f937cb51bf78814de1707eab49 (patch)
treedc67febe9e89f8659bc6cc2ab81ca7192fa459bd
parentf7e4ea51a9a62e0cddac1a9407b5a6f9a91545f4 (diff)
downloadtracker-a60c66a3bd1882f937cb51bf78814de1707eab49.tar.gz
tracker-store: Destroy the direct connection on exit
And let it shut down the internal data manager. Fixes possible crashes as the TrackerDirectConnection is not disposed and there may be other internal threads trying to access the TrackerDataManager after shutdown.
-rw-r--r--src/libtracker-direct/tracker-direct.c2
-rw-r--r--src/tracker-store/tracker-main.vala2
2 files changed, 3 insertions, 1 deletions
diff --git a/src/libtracker-direct/tracker-direct.c b/src/libtracker-direct/tracker-direct.c
index 326906e44..7a26f2064 100644
--- a/src/libtracker-direct/tracker-direct.c
+++ b/src/libtracker-direct/tracker-direct.c
@@ -399,6 +399,8 @@ tracker_direct_connection_finalize (GObject *object)
tracker_db_interface_sqlite_wal_checkpoint (wal_iface, TRUE, NULL);
}
+ tracker_data_manager_shutdown (priv->data_manager);
+
g_clear_object (&priv->store);
g_clear_object (&priv->journal);
g_clear_object (&priv->ontology);
diff --git a/src/tracker-store/tracker-main.vala b/src/tracker-store/tracker-main.vala
index 5ad40892b..35eafb212 100644
--- a/src/tracker-store/tracker-main.vala
+++ b/src/tracker-store/tracker-main.vala
@@ -342,8 +342,8 @@ License which can be viewed at:
Tracker.Writeback.shutdown ();
Tracker.Events.shutdown ();
- data_manager.shutdown ();
data_manager = null;
+ connection = null;
Tracker.DBus.shutdown ();
Tracker.Log.shutdown ();