summaryrefslogtreecommitdiff
path: root/src/libtracker-direct
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2017-07-06 16:53:36 +0200
committerCarlos Garnacho <carlosg@gnome.org>2017-07-06 18:05:41 +0200
commit2ee2ebc7e18925af53d251218f469d57a65cce14 (patch)
tree7f2c6c9917898163b00a082e6eb26e3e26e82de1 /src/libtracker-direct
parentee4171d56f94805394d122b0bd61e269ccba883a (diff)
downloadtracker-2ee2ebc7e18925af53d251218f469d57a65cce14.tar.gz
libtracker-data: Add explicit shutdown call to TrackerDataManager
As DB interfaces will have a reference each on the TrackerDataManager, callers will never drop the last reference themselves. Add an explicit shutdown() call that just runs the dispose phase, and destroy the TrackerDBManager on it. Destroying the DB manager will tear down the writeable DB interface and unlink the "is running" file. Any remaining readonly DB interfaces presumably don't need the DB manager anymore and will disappear as soon as all their remaining cursors are closed.
Diffstat (limited to 'src/libtracker-direct')
-rw-r--r--src/libtracker-direct/tracker-direct.vala5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/libtracker-direct/tracker-direct.vala b/src/libtracker-direct/tracker-direct.vala
index b12ccc4eb..14447e12d 100644
--- a/src/libtracker-direct/tracker-direct.vala
+++ b/src/libtracker-direct/tracker-direct.vala
@@ -210,6 +210,11 @@ public class Tracker.Direct.Connection : Tracker.Sparql.Connection, AsyncInitabl
update_queue = new AsyncQueue<Task> ();
}
+ public override void dispose () {
+ data_manager.shutdown ();
+ base.dispose ();
+ }
+
Sparql.Cursor query_unlocked (string sparql) throws Sparql.Error, DBusError {
try {
var query_object = new Sparql.Query (data_manager, sparql);