From: Anthony Minessale Date: Thu, 16 Apr 2009 14:26:50 +0000 (+0000) Subject: autoflush these channels that use queues X-Git-Tag: v1.0.4~1135 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b7775547b3b80b4789a2c633d53136171566b52b;p=thirdparty%2Ffreeswitch.git autoflush these channels that use queues git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13057 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- diff --git a/src/mod/endpoints/mod_iax/mod_iax.c b/src/mod/endpoints/mod_iax/mod_iax.c index e06157d475..c2e4364ca3 100644 --- a/src/mod/endpoints/mod_iax/mod_iax.c +++ b/src/mod/endpoints/mod_iax/mod_iax.c @@ -623,8 +623,9 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch return SWITCH_STATUS_FALSE; } - switch_core_timer_next(&tech_pvt->timer); - + if (!switch_queue_size(tech_pvt->frame_queue)) { + switch_core_timer_next(&tech_pvt->timer); + } if (switch_queue_trypop(tech_pvt->frame_queue, &pop) == SWITCH_STATUS_SUCCESS && pop) { if (tech_pvt->read_frame) { diff --git a/src/mod/endpoints/mod_loopback/mod_loopback.c b/src/mod/endpoints/mod_loopback/mod_loopback.c index 49731e7b5d..c1245b14bf 100644 --- a/src/mod/endpoints/mod_loopback/mod_loopback.c +++ b/src/mod/endpoints/mod_loopback/mod_loopback.c @@ -548,8 +548,10 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch goto end; } - - switch_core_timer_next(&tech_pvt->timer); + if (!switch_queue_size(tech_pvt->frame_queue)) { + switch_core_timer_next(&tech_pvt->timer); + } + if (switch_queue_trypop(tech_pvt->frame_queue, &pop) == SWITCH_STATUS_SUCCESS && pop) { if (tech_pvt->write_frame) { switch_frame_free(&tech_pvt->write_frame);