summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorRussell Bryant <russell@russellbryant.com>2007-08-03 02:05:02 +0000
committerRussell Bryant <russell@russellbryant.com>2007-08-03 02:05:02 +0000
commitbcabfbb89ade46abd186c74a377ba6fab95d2a47 (patch)
treee140afee6ed6841db0941f6e63d9d4437299bb6b /channels
parent1064b75ab7ca38a69c391d7569fc16e7cbf30ab3 (diff)
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: https://origsvn.digium.com/svn/asterisk/trunk@78029 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_iax2.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 72bf28f73..8b21c79b1 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -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);