util: add synchronous form to reload model

This commit is contained in:
Christian Hergert
2017-11-24 00:35:14 -08:00
parent d4a60586b5
commit b78293657d
2 changed files with 22 additions and 0 deletions

View File

@ -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;
@ -247,6 +248,26 @@ sp_process_model_new (void)
return g_object_new (SP_TYPE_PROCESS_MODEL, NULL);
}
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)
{

View File

@ -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