summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Michelson <mmichelson@digium.com>2014-08-22 16:56:57 +0000
committerMark Michelson <mmichelson@digium.com>2014-08-22 16:56:57 +0000
commitdcfffce66dfd156f419b04744297e99a464b666f (patch)
tree7b97a3ea27441e97567dcb2ab955e4da9d45d9ca
parent33835e17a08641f3b54a9293a13a08ca30b43fd6 (diff)
Fix a locking inversion in MixMonitor.
We need to unlock the audiohook before trying to lock the channel, since the correct locking order is channel then audiohook. ........ Merged revisions 421882 from http://svn.asterisk.org/svn/asterisk/branches/13 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@421883 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--apps/app_mixmonitor.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/apps/app_mixmonitor.c b/apps/app_mixmonitor.c
index cf7b93518..4b3da07c0 100644
--- a/apps/app_mixmonitor.c
+++ b/apps/app_mixmonitor.c
@@ -743,14 +743,15 @@ static void *mixmonitor_thread(void *obj)
"File: %s\r\n",
ast_channel_name(mixmonitor->autochan->chan),
mixmonitor->filename);
+
+ ast_audiohook_unlock(&mixmonitor->audiohook);
+
ast_channel_lock(mixmonitor->autochan->chan);
if (ast_test_flag(mixmonitor, MUXFLAG_BEEP_STOP)) {
ast_stream_and_wait(mixmonitor->autochan->chan, "beep", "");
}
ast_channel_unlock(mixmonitor->autochan->chan);
- ast_audiohook_unlock(&mixmonitor->audiohook);
-
ast_autochan_destroy(mixmonitor->autochan);
/* Datastore cleanup. close the filestream and wait for ds destruction */