Merged revisions 78028 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r78028 | russell | 2007-08-02 21:04:22 -0500 (Thu, 02 Aug 2007) | 6 lines Don't reuse the timespec that was set to 0 in the previous timedwait as it will just return immediately. Also, fix some logic so the thread's lock isn't unlocked twice in the weird case of dynamic threads getting acquired right after a timeout. (pointed out by SteveK) ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@78029 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
parent
77570c9824
commit
997720dcb5
|
@ -8413,15 +8413,12 @@ static void *iax2_process_thread(void *data)
|
|||
/* Someone grabbed our thread *right* after we timed out.
|
||||
* Wait for them to set us up with something to do and signal
|
||||
* us to continue. */
|
||||
ast_cond_timedwait(&thread->cond, &thread->lock, &ts);
|
||||
ast_mutex_unlock(&thread->lock);
|
||||
ast_cond_wait(&thread->cond, &thread->lock);
|
||||
}
|
||||
if (!t)
|
||||
ast_mutex_unlock(&thread->lock);
|
||||
} else {
|
||||
ast_cond_wait(&thread->cond, &thread->lock);
|
||||
ast_mutex_unlock(&thread->lock);
|
||||
}
|
||||
ast_mutex_unlock(&thread->lock);
|
||||
|
||||
/* Add ourselves to the active list now */
|
||||
AST_LIST_LOCK(&active_list);
|
||||
|
|
Reference in New Issue