From 6e99d553629644443215ca7773308016cc556d28 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Sat, 5 Apr 2008 03:20:06 +0000 Subject: [PATCH] update git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@8038 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/applications/mod_fifo/mod_fifo.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/mod/applications/mod_fifo/mod_fifo.c b/src/mod/applications/mod_fifo/mod_fifo.c index ce6803d16b..0f8531a56f 100644 --- a/src/mod/applications/mod_fifo/mod_fifo.c +++ b/src/mod/applications/mod_fifo/mod_fifo.c @@ -117,7 +117,7 @@ static int node_consumer_wait_count(fifo_node_t *node) static void node_remove_uuid(fifo_node_t *node, const char *uuid) { - int i, len = 0; + int i, len = 0, done = 0; void *pop = NULL; for (i = 0; i < MAX_PRI; i++) { @@ -126,18 +126,17 @@ static void node_remove_uuid(fifo_node_t *node, const char *uuid) } while(len) { if (switch_queue_trypop(node->fifo_list[i], &pop) == SWITCH_STATUS_SUCCESS && pop) { - if (!strcmp((char *)pop, uuid)) { + if (!done && !strcmp((char *)pop, uuid)) { free(pop); - goto end; + done++; + } else { + switch_queue_push(node->fifo_list[i], pop); } - switch_queue_push(node->fifo_list[i], pop); } len--; } } - end: - if (!node_consumer_wait_count(node)) { node->start_waiting = 0; }