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:11:44 +0200
commitfb6a716de203b9d391d2d38808d1d5140cdc7ad8 (patch)
treed3639fc2bc29532a0fc5507b5d31ff6a1954fc22
parent98ba945c7d8c14f69bd9a012cfcd75e7b37a4149 (diff)
downloadtracker-fb6a716de203b9d391d2d38808d1d5140cdc7ad8.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 ();