diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2017-07-06 16:53:36 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2017-07-06 18:05:41 +0200 |
commit | 2ee2ebc7e18925af53d251218f469d57a65cce14 (patch) | |
tree | 7f2c6c9917898163b00a082e6eb26e3e26e82de1 /src/libtracker-direct | |
parent | ee4171d56f94805394d122b0bd61e269ccba883a (diff) | |
download | tracker-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.vala | 5 |
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); |