[sysprof] util: add synchronous form to reload model



commit b78293657d1c1e51943433355c95b2b14e0862f5
Author: Christian Hergert <chergert redhat com>
Date:   Fri Nov 24 00:35:14 2017 -0800

    util: add synchronous form to reload model

 lib/util/sp-process-model.c |   21 +++++++++++++++++++++
 lib/util/sp-process-model.h |    1 +
 2 files changed, 22 insertions(+), 0 deletions(-)
---
diff --git a/lib/util/sp-process-model.c b/lib/util/sp-process-model.c
index e83b132..8d55e36 100644
--- a/lib/util/sp-process-model.c
+++ b/lib/util/sp-process-model.c
@@ -236,6 +236,7 @@ sp_process_model_do_reload (gpointer user_data)
   self->reload_source = 0;
 
   task = g_task_new (self, NULL, sp_process_model_merge_cb, NULL);
+  g_task_set_priority (task, G_PRIORITY_LOW);
   g_task_run_in_thread (task, sp_process_model_reload_worker);
 
   return G_SOURCE_REMOVE;
@@ -248,6 +249,26 @@ sp_process_model_new (void)
 }
 
 void
+sp_process_model_reload (SpProcessModel *self)
+{
+  g_autoptr(GTask) task = NULL;
+
+  g_return_if_fail (SP_IS_PROCESS_MODEL (self));
+
+  if (self->reload_source != 0)
+    {
+      g_source_remove (self->reload_source);
+      self->reload_source = 0;
+    }
+
+  task = g_task_new (self, NULL, NULL, NULL);
+  g_task_set_priority (task, G_PRIORITY_LOW);
+  g_task_run_in_thread_sync (task, sp_process_model_reload_worker);
+
+  sp_process_model_merge_cb (G_OBJECT (self), G_ASYNC_RESULT (task), NULL);
+}
+
+void
 sp_process_model_queue_reload (SpProcessModel *self)
 {
   g_return_if_fail (SP_IS_PROCESS_MODEL (self));
diff --git a/lib/util/sp-process-model.h b/lib/util/sp-process-model.h
index 8b16037..300ad90 100644
--- a/lib/util/sp-process-model.h
+++ b/lib/util/sp-process-model.h
@@ -28,6 +28,7 @@ G_BEGIN_DECLS
 G_DECLARE_FINAL_TYPE (SpProcessModel, sp_process_model, SP, PROCESS_MODEL, GObject)
 
 SpProcessModel *sp_process_model_new          (void);
+void            sp_process_model_reload       (SpProcessModel *self);
 void            sp_process_model_queue_reload (SpProcessModel *self);
 
 G_END_DECLS


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]