aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cubeb_aaudio.cpp12
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;
}