From: Jörg S. <ib...@gm...> - 2010-11-09 09:34:48
|
Hi! What is the worst than can happen when I do NOT lock the conference via conf->lock and conflist_lock in conference.c find_member? struct ast_conf_member *find_member (const char *chan, int lock) { struct ast_conf_member *found = NULL; struct ast_conf_member *member; struct ast_conference *conf; //ast_mutex_lock(&conflist_lock ) ; conf = conflist; // loop through conf list while ( conf != NULL&& !found ) { // lock conference //ast_mutex_lock(&conf->lock ); member = conf->memberlist ; while (member != NULL) { if(!strcmp(member->channel_name, chan)) { found = member; if(lock) ast_mutex_lock(&member->lock); break; } member = member->next; } // unlock conference //ast_mutex_unlock(&conf->lock ); conf = conf->next ; } // release mutex //ast_mutex_unlock(&conflist_lock ) ; return found; } Best Regards Jörg |