return;
if (worker->thread) {
- g_mutex_lock(&worker->mutex);
- if (g_main_loop_is_running(worker->loop)) {
+ if (g_main_loop_is_running(worker->loop))
g_main_loop_quit(worker->loop);
- g_cond_wait(&worker->cond, &worker->mutex);
- } else {
+ else
_E("GMainLoop is not running");
- }
- g_mutex_unlock(&worker->mutex);
+
g_thread_join(worker->thread);
}
g_list_free_full(worker->jobs, __destroy_job);
g_main_context_pop_thread_default(worker->context);
- g_cond_signal(&worker->cond);
g_mutex_unlock(&worker->mutex);
_W("Shut down worker");