diff --git a/Userland/Libraries/LibAudio/PulseAudioWrappers.cpp b/Userland/Libraries/LibAudio/PulseAudioWrappers.cpp index d6c6bb339a..d8415fbf6f 100644 --- a/Userland/Libraries/LibAudio/PulseAudioWrappers.cpp +++ b/Userland/Libraries/LibAudio/PulseAudioWrappers.cpp @@ -266,11 +266,18 @@ ErrorOr> PulseAudioContext::create_stream(Output wait_for_signal(); } + pa_stream_set_state_callback(stream, nullptr, nullptr); + return stream_wrapper; } PulseAudioStream::~PulseAudioStream() { + auto locker = m_context->main_loop_locker(); + pa_stream_set_write_callback(m_stream, nullptr, nullptr); + pa_stream_set_underflow_callback(m_stream, nullptr, nullptr); + pa_stream_set_started_callback(m_stream, nullptr, nullptr); + pa_stream_disconnect(m_stream); pa_stream_unref(m_stream); }