diff --git a/Userland/Libraries/LibAudio/ConnectionToServer.cpp b/Userland/Libraries/LibAudio/ConnectionToServer.cpp index 5d61fa19e0..0d90cbaa50 100644 --- a/Userland/Libraries/LibAudio/ConnectionToServer.cpp +++ b/Userland/Libraries/LibAudio/ConnectionToServer.cpp @@ -27,8 +27,10 @@ ConnectionToServer::ConnectionToServer(NonnullOwnPtr Core::EventLoop enqueuer_loop; m_enqueuer_loop = &enqueuer_loop; enqueuer_loop.exec(); - Threading::MutexLocker const locker(m_enqueuer_loop_destruction); - m_enqueuer_loop = nullptr; + { + Threading::MutexLocker const locker(m_enqueuer_loop_destruction); + m_enqueuer_loop = nullptr; + } return (intptr_t) nullptr; })) { @@ -43,10 +45,13 @@ ConnectionToServer::~ConnectionToServer() void ConnectionToServer::die() { - // We're sometimes getting here after the other thread has already exited and its event loop does no longer exist. - if (Threading::MutexLocker const locker(m_enqueuer_loop_destruction); m_enqueuer_loop != nullptr) { - m_enqueuer_loop->wake(); - m_enqueuer_loop->quit(0); + { + Threading::MutexLocker const locker(m_enqueuer_loop_destruction); + // We're sometimes getting here after the other thread has already exited and its event loop does no longer exist. + if (m_enqueuer_loop != nullptr) { + m_enqueuer_loop->wake(); + m_enqueuer_loop->quit(0); + } } (void)m_background_audio_enqueuer->join(); }