diff options
author | Mark Michelson <mmichelson@digium.com> | 2014-08-22 16:56:57 +0000 |
---|---|---|
committer | Mark Michelson <mmichelson@digium.com> | 2014-08-22 16:56:57 +0000 |
commit | dcfffce66dfd156f419b04744297e99a464b666f (patch) | |
tree | 7b97a3ea27441e97567dcb2ab955e4da9d45d9ca | |
parent | 33835e17a08641f3b54a9293a13a08ca30b43fd6 (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.c | 5 |
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 */ |