[commit] r3949 - freeswitch/trunk/src/mod/applications/mod_conference
Author: anthm Date: Thu Jan 11 19:15:21 2007 New Revision: 3949 Modified: freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c Log: Avoiding Deadlock Modified: freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c ============================================================================== --- freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c (original) +++ freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c Thu Jan 11 19:15:21 2007 @@ -654,7 +654,6 @@ ready = 0; /* Read one frame of audio from each member channel and save it for redistribution */ - switch_thread_rwlock_rdlock(conference->member_rwlock); for (imember = conference->members; imember; imember = imember->next) { if (imember->buflen) { memset(imember->frame, 255, imember->buflen); @@ -693,7 +692,6 @@ } switch_mutex_unlock(imember->audio_in_mutex); } - switch_thread_rwlock_unlock(conference->member_rwlock); /* If a file or speech event is being played */ if (conference->fnode) { /* Lead in time */ @@ -726,7 +724,6 @@ if (ready) { /* Build a muxed frame for every member that contains the mixed audio of everyone else */ - switch_thread_rwlock_rdlock(conference->member_rwlock); for (omember = conference->members; omember; omember = omember->next) { omember->len = bytes; if (conference->fnode) { @@ -785,7 +782,6 @@ } } } - switch_thread_rwlock_unlock(conference->member_rwlock); /* Go back and write each member his dedicated copy of the audio frame that does not contain his own audio. */ for (imember = conference->members; imember; imember = imember->next) {
participants (1)
-
Freeswitch SVN