diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2017-11-25 13:53:22 +0100 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2018-07-20 18:27:32 +0200 |
commit | 10915fd2ab785c75f9ef28fa35e24689db7faf37 (patch) | |
tree | f774c8007ebf640d8b340e7710a1606318da2ef5 | |
parent | 683035a5fd4585ae8cfb30ed9acbcefd43fd0ba1 (diff) | |
download | tracker-10915fd2ab785c75f9ef28fa35e24689db7faf37.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 (); } } |