diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2017-11-25 13:53:22 +0100 |
---|---|---|
committer | Sam Thursfield <sam@afuera.me.uk> | 2018-07-16 21:12:04 +0200 |
commit | 64ebded35ce994ccf67e4673e2efa938ab349644 (patch) | |
tree | f82eff0690e9da844eb5448bea58de32557ae22f | |
parent | 8d6e69837a32406b73018ce83d760c79ff82f06e (diff) | |
download | tracker-64ebded35ce994ccf67e4673e2efa938ab349644.tar.gz |
tracker-store: Give ownership of writeback events on get_ready()
Instead of doing get_ready() and then reset_ready(), just give
ownership of the events hashtable on get_ready() while resetting
the internal one.
-rw-r--r-- | src/tracker-store/tracker-resources.vala | 2 | ||||
-rw-r--r-- | src/tracker-store/tracker-writeback.c | 10 | ||||
-rw-r--r-- | src/tracker-store/tracker-writeback.vapi | 3 |
3 files changed, 9 insertions, 6 deletions
diff --git a/src/tracker-store/tracker-resources.vala b/src/tracker-store/tracker-resources.vala index 9d9b83c18..2dbd1c00b 100644 --- a/src/tracker-store/tracker-resources.vala +++ b/src/tracker-store/tracker-resources.vala @@ -263,8 +263,6 @@ public class Tracker.Resources : Object { writeback (builder.end ()); } - Tracker.Writeback.reset_ready (); - signal_timeout = 0; return false; } diff --git a/src/tracker-store/tracker-writeback.c b/src/tracker-store/tracker-writeback.c index a183b00a3..5bba19020 100644 --- a/src/tracker-store/tracker-writeback.c +++ b/src/tracker-store/tracker-writeback.c @@ -115,9 +115,14 @@ tracker_writeback_reset_ready () GHashTable * tracker_writeback_get_ready (void) { + GHashTable *events; + g_return_val_if_fail (private != NULL, NULL); - return private->ready_events; + events = private->ready_events; + private->ready_events = NULL; + + return events; } static void @@ -214,7 +219,8 @@ tracker_writeback_shutdown (void) /* Perhaps hurry an emit of the ready events here? We're shutting down, * so I guess we're not required to do that here ... ? */ - tracker_writeback_reset_ready (); + g_clear_pointer (&private->ready_events, + (GDestroyNotify) g_hash_table_unref); free_private (private); private = NULL; diff --git a/src/tracker-store/tracker-writeback.vapi b/src/tracker-store/tracker-writeback.vapi index 368de0303..7c48512b8 100644 --- a/src/tracker-store/tracker-writeback.vapi +++ b/src/tracker-store/tracker-writeback.vapi @@ -26,9 +26,8 @@ namespace Tracker { public void init (Tracker.Data.Manager data_manager, WritebackGetPredicatesFunc callback); public void shutdown (); public void check (int graph_id, string graph, int subject_id, string subject, int pred_id, int object_id, string object, GLib.PtrArray rdf_types); - public unowned GLib.HashTable<int, GLib.Array<int>> get_ready (); + public GLib.HashTable<int, GLib.Array<int>> get_ready (); public void reset_pending (); - public void reset_ready (); public void transact (); } } |