From fe7c5a420821811f51163b6a303e996130afea6c Mon Sep 17 00:00:00 2001 From: Max Kellermann <max@musicpd.org> Date: Wed, 10 Mar 2021 20:03:13 +0100 Subject: [PATCH] output/wasapi: initialize is_started in Open() --- src/output/plugins/wasapi/WasapiOutputPlugin.cxx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/output/plugins/wasapi/WasapiOutputPlugin.cxx b/src/output/plugins/wasapi/WasapiOutputPlugin.cxx index db61fff3f..f415c51e0 100644 --- a/src/output/plugins/wasapi/WasapiOutputPlugin.cxx +++ b/src/output/plugins/wasapi/WasapiOutputPlugin.cxx @@ -234,7 +234,11 @@ class WasapiOutput final : public AudioOutput { const bool dop_setting; #endif - bool is_started = false; + /** + * Only valid if the output is open. + */ + bool is_started; + std::atomic_flag not_interrupted = true; const std::string device_config; @@ -583,6 +587,8 @@ WasapiOutput::DoOpen(AudioFormat &audio_format) watermark = buffer_size_in_frames * 3 * FrameSize(); thread.emplace(*client, std::move(render_client), FrameSize(), buffer_size_in_frames, is_exclusive); + + is_started = false; } void @@ -596,7 +602,6 @@ WasapiOutput::Close() noexcept FormatError(std::current_exception(), "exception while stopping"); } - is_started = false; thread->Finish(); com_worker->Async([&]() { thread.reset();