aboutsummaryrefslogtreecommitdiffstats
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 b8a084491..9a24cc37f 100644
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -1402,8 +1402,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++) {
@@ -6169,6 +6167,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;
@@ -6211,6 +6211,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;