summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libdleyna/core/task-processor.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/libdleyna/core/task-processor.c b/libdleyna/core/task-processor.c
index 5955a0e..0a55d1f 100644
--- a/libdleyna/core/task-processor.c
+++ b/libdleyna/core/task-processor.c
@@ -233,9 +233,9 @@ void dleyna_task_processor_set_quitting(dleyna_task_processor_t *processor)
processor->quitting = TRUE;
- if (processor->running_tasks > 0)
- prv_cancel_all_queues(processor);
- else
+ prv_cancel_all_queues(processor);
+
+ if (processor->running_tasks == 0)
g_idle_add(processor->on_quit_cb, NULL);
DLEYNA_LOG_DEBUG("Exit");
@@ -374,6 +374,9 @@ void dleyna_task_queue_start(const dleyna_task_queue_key_t *queue_id)
DLEYNA_LOG_DEBUG("Enter - Starting queue <%s,%s>", queue_id->source,
queue_id->sink);
+ if (processor->quitting)
+ goto exit;
+
queue = g_hash_table_lookup(processor->task_queues, queue_id);
if (queue->defer_remove)