From c2d5d4000d9ebbb95c8d659440f4d0dd626358d9 Mon Sep 17 00:00:00 2001 From: Thong Nguyen Date: Tue, 16 Jul 2013 16:31:45 +0100 Subject: [PATCH] Fixed playerMutex not being released sometimes (bug from last commit) --- Audjustable/Classes/AudioPlayer/AudioPlayer.m | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Audjustable/Classes/AudioPlayer/AudioPlayer.m b/Audjustable/Classes/AudioPlayer/AudioPlayer.m index 1354ba0..49bdce7 100644 --- a/Audjustable/Classes/AudioPlayer/AudioPlayer.m +++ b/Audjustable/Classes/AudioPlayer/AudioPlayer.m @@ -1226,12 +1226,14 @@ static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQ if (entry == nil) { + pthread_mutex_unlock(&playerMutex); + return 0; } double retval = [entry duration]; - pthread_mutex_unlock(&playerMutex); + pthread_mutex_unlock(&playerMutex); return retval; } @@ -1252,6 +1254,13 @@ static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQ QueueEntry* entry = currentlyPlayingEntry; + if (entry == nil) + { + pthread_mutex_unlock(&playerMutex); + + return 0; + } + double retval = [entry progress]; pthread_mutex_unlock(&playerMutex); @@ -2143,6 +2152,8 @@ static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQ if (entry == nil) { + pthread_mutex_unlock(&playerMutex); + return nil; }