diff --git a/OSBindings/Mac/Clock Signal/Audio/CSAudioQueue.m b/OSBindings/Mac/Clock Signal/Audio/CSAudioQueue.m index 538133bcf..bc741a4c6 100644 --- a/OSBindings/Mac/Clock Signal/Audio/CSAudioQueue.m +++ b/OSBindings/Mac/Clock Signal/Audio/CSAudioQueue.m @@ -115,11 +115,6 @@ - (void)dealloc { [_deallocLock lock]; - if(_audioQueue) { - OSSGuard(AudioQueueDispose(_audioQueue, true)); - _audioQueue = NULL; - } - for(size_t c = 0; c < NumBuffers; c++) { if(_buffers[c]) { OSSGuard(AudioQueueFreeBuffer(_audioQueue, _buffers[c])); @@ -127,6 +122,11 @@ } } + if(_audioQueue) { + OSSGuard(AudioQueueDispose(_audioQueue, true)); + _audioQueue = NULL; + } + // nil out the dealloc lock before entering the critical section such // that it becomes impossible for anyone else to acquire. NSLock *deallocLock = _deallocLock;