diff options
-rw-r--r-- | src/cubeb_aaudio.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/cubeb_aaudio.cpp b/src/cubeb_aaudio.cpp index 4b7774e..d0a31b2 100644 --- a/src/cubeb_aaudio.cpp +++ b/src/cubeb_aaudio.cpp @@ -1259,14 +1259,14 @@ aaudio_stream_init(cubeb * ctx, cubeb_stream ** stream, // This is ok: the thread is marked as being in use lock.unlock(); - lock_guard guard(stm->mutex); + int err; + + { + lock_guard guard(stm->mutex); + err = aaudio_stream_init_impl(stm, guard); + } - int err = aaudio_stream_init_impl(stm, guard); if (err != CUBEB_OK) { - // This is needed since aaudio_stream_destroy will lock the mutex again. - // It's no problem that there is a gap in between as the stream isn't - // actually in use. - lock.unlock(); aaudio_stream_destroy(stm); return err; } |