]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-4038 can you try this
authorAnthony Minessale <anthm@freeswitch.org>
Mon, 2 Apr 2012 21:03:37 +0000 (16:03 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Mon, 2 Apr 2012 21:03:45 +0000 (16:03 -0500)
src/switch_channel.c
src/switch_ivr_bridge.c

index c3970ea8e2a913e13be3b90e5ab031c229800040..76161bc9c569bb20cb1421020c31625cc52be164 100644 (file)
@@ -1380,7 +1380,7 @@ SWITCH_DECLARE(void) switch_channel_wait_for_state(switch_channel_t *channel, sw
        
        for (;;) {
                if ((channel->state < CS_HANGUP && channel->state == channel->running_state && channel->running_state == want_state) ||
-                       (other_channel && switch_channel_down_nosig(other_channel)) || switch_channel_down_nosig(channel)) {
+                       (other_channel && switch_channel_down_nosig(other_channel)) || switch_channel_down(channel)) {
                        break;
                }
                switch_yield(20000);
@@ -1399,6 +1399,8 @@ SWITCH_DECLARE(void) switch_channel_wait_for_state_timeout(switch_channel_t *cha
                        break;
                }
 
+               switch_channel_check_signal(channel, SWITCH_TRUE);
+
                switch_cond_next();
 
                if (++count >= timeout) {
index 06dc31e1cb822dea4889e1ceda52fcf67c3c4014..b75549c417a05596796c99f90772260dc2b4a348 100644 (file)
@@ -776,7 +776,7 @@ static switch_status_t uuid_bridge_on_soft_execute(switch_core_session_t *sessio
                        state = switch_channel_get_state(other_channel);
                        running_state = switch_channel_get_running_state(other_channel);
 
-                       if (switch_channel_down_nosig(other_channel) || switch_channel_down_nosig(channel)) {
+                       if (switch_channel_down_nosig(other_channel) || switch_channel_down(channel)) {
                                break;
                        }