summaryrefslogtreecommitdiff
path: root/apps/app_queue.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/app_queue.c')
-rw-r--r--apps/app_queue.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/apps/app_queue.c b/apps/app_queue.c
index 3c3a2cff7..ca67f0a9f 100644
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -1409,8 +1409,6 @@ static void destroy_queue(void *obj)
struct call_queue *q = obj;
int i;
- ast_debug(0, "Queue destructor called for queue '%s'!\n", q->name);
-
free_members(q, 1);
ast_string_field_free_memory(q);
for (i = 0; i < MAX_PERIODIC_ANNOUNCEMENTS; i++) {
@@ -6178,6 +6176,8 @@ static int unload_module(void)
{
int res;
struct ast_context *con;
+ struct ao2_iterator q_iter;
+ struct call_queue *q = NULL;
if (device_state.thread != AST_PTHREADT_NULL) {
device_state.stop = 1;
@@ -6220,6 +6220,11 @@ static int unload_module(void)
clear_and_free_interfaces();
+ q_iter = ao2_iterator_init(queues, 0);
+ while ((q = ao2_iterator_next(&q_iter))) {
+ ao2_unlink(queues, q);
+ queue_unref(q);
+ }
ao2_ref(queues, -1);
return res;