Re: Emitting signals from threads

But that's not how the code is written:

g_task_run_in_thread(obj->task, custom_object_work) ->
  custom_object_worker() ->
     signal_emit() ->
        g_idle_add_full(..., signal_emitter, ...);

signal_emitter() is the function that *actually* emits the signal.
signal_emitter() is supposed to be running in the main context thread
by the virtue of being the g_idle_add_full() callback.

Are you saying that the g_idle_add_full() callback also runs in the
worker thread?

On Wed, Feb 27, 2019 at 4:54 PM Paul Davis <paul linuxaudiosystems com> wrote:

On Wed, Feb 27, 2019 at 5:46 PM Mitko Haralanov <voidtrance gmail com> wrote:

How is that? The update is happening from a callback executed by the
main context thread?

g_task_run_in_thread(obj->task, custom_object_worker);

custom_object_worker() emits the "updated" signal. the handler modifies the model.

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