From: dingding Date: Thu, 6 Oct 2016 01:43:09 +0000 (+0800) Subject: FS-9602 [mod_fifo] fix outbound_ringall_thread_run ring_consumer_count X-Git-Tag: v1.8.0~1204^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6cf77759a8de613f1520035c83444bb31610e41b;p=thirdparty%2Ffreeswitch.git FS-9602 [mod_fifo] fix outbound_ringall_thread_run ring_consumer_count --- diff --git a/src/mod/applications/mod_fifo/mod_fifo.c b/src/mod/applications/mod_fifo/mod_fifo.c index 0bb89ecd69..16e217b620 100644 --- a/src/mod/applications/mod_fifo/mod_fifo.c +++ b/src/mod/applications/mod_fifo/mod_fifo.c @@ -1471,7 +1471,7 @@ static void *SWITCH_THREAD_FUNC outbound_ringall_thread_run(switch_thread_t *thr switch_mutex_lock(node->update_mutex); node->busy = 0; - node->ring_consumer_count = 1; + node->ring_consumer_count++; switch_mutex_unlock(node->update_mutex); SWITCH_STANDARD_STREAM(stream); @@ -1734,7 +1734,9 @@ static void *SWITCH_THREAD_FUNC outbound_ringall_thread_run(switch_thread_t *thr if (node) { switch_mutex_lock(node->update_mutex); - node->ring_consumer_count = 0; + if (--node->ring_consumer_count < 0) { + node->ring_consumer_count = 0; + } node->busy = 0; switch_mutex_unlock(node->update_mutex); switch_thread_rwlock_unlock(node->rwlock); @@ -1911,7 +1913,7 @@ static void *SWITCH_THREAD_FUNC outbound_enterprise_thread_run(switch_thread_t * switch_event_destroy(&ovars); if (node) { switch_mutex_lock(node->update_mutex); - if (node->ring_consumer_count-- < 0) { + if (--node->ring_consumer_count < 0) { node->ring_consumer_count = 0; } node->busy = 0;