wait for thread to start in mod conference to avoid one in a million race on heavy traffic

This commit is contained in:
Anthony Minessale 2011-06-09 15:31:11 -05:00
parent 665f7656dc
commit b1cf5bee30
1 changed files with 8 additions and 0 deletions

View File

@ -2496,6 +2496,7 @@ static void conference_loop_output(conference_member_t *member)
uint32_t low_count, bytes;
call_list_t *call_list, *cp;
switch_codec_implementation_t read_impl = { 0 };
int sanity;
switch_core_session_get_read_impl(member->session, &read_impl);
@ -2596,6 +2597,13 @@ static void conference_loop_output(conference_member_t *member)
switch_channel_answer(channel);
}
sanity = 2000;
while(!switch_test_flag(member, MFLAG_ITHREAD) && sanity > 0) {
switch_cond_next();
sanity--;
}
/* Fair WARNING, If you expect the caller to hear anything or for digit handling to be processed, */
/* you better not block this thread loop for more than the duration of member->conference->timer_name! */
while (switch_test_flag(member, MFLAG_RUNNING) && switch_test_flag(member, MFLAG_ITHREAD)