summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRegis Merlino <regis.merlino@intel.com>2013-04-18 15:15:43 +0200
committerMark Ryan <mark.d.ryan@intel.com>2013-05-03 16:21:40 +0200
commit25d270897da7fad5ea3c8b18a0aa70c470447d14 (patch)
treee28b681737111cf6b7319b278161da65d6cf7f9a
parent2e7e57095e97f61a37517b573cb13a2f948dda0d (diff)
downloaddleyna-core-25d270897da7fad5ea3c8b18a0aa70c470447d14.tar.gz
[Processor] Fix a potential crash when quitting the app
Signed-off-by: Regis Merlino <regis.merlino@intel.com>
-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)