From f1c05aefde1e54b09ecf9fab0b686fa42e8d3e4c Mon Sep 17 00:00:00 2001 From: Zaggy1024 Date: Mon, 30 Mar 2026 18:35:19 -0500 Subject: [PATCH] LibMedia: Don't keep PlaybackStreamPulseAudio alive in its thread As soon as the promise is resolved, we need to unref it, so move it to the deferred_invoke() callback. This allows PulseAudio streams to be released properly and gives TestPlaybackStream a chance to pass instead of timing out. --- Libraries/LibMedia/Audio/PlaybackStreamPulseAudio.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Libraries/LibMedia/Audio/PlaybackStreamPulseAudio.cpp b/Libraries/LibMedia/Audio/PlaybackStreamPulseAudio.cpp index 02031852b2..1ac332f06c 100644 --- a/Libraries/LibMedia/Audio/PlaybackStreamPulseAudio.cpp +++ b/Libraries/LibMedia/Audio/PlaybackStreamPulseAudio.cpp @@ -59,8 +59,8 @@ NonnullRefPtr PlaybackStreamPulseAudio::create(Ou auto event_loop = main_thread_event_loop->take(); if (!event_loop) return 1; - event_loop->deferred_invoke([promise = move(promise), playback_stream] { - promise->resolve(playback_stream); + event_loop->deferred_invoke([promise = move(promise), playback_stream = move(playback_stream)] mutable { + promise->resolve(move(playback_stream)); }); }