Commit 546b773b authored by Max Kellermann's avatar Max Kellermann

output/Internal: remove mutex code from Close()

parent 15dcaeda
......@@ -108,8 +108,6 @@ AudioOutput::CloseFilter() noexcept
void
AudioOutput::Close(bool drain) noexcept
{
const ScopeUnlock unlock(mutex);
CloseOutput(drain);
CloseFilter();
......
......@@ -142,6 +142,11 @@ public:
void Disable() noexcept;
/**
* Invoke OutputPlugin::close().
*
* Caller must not lock the mutex.
*/
void Close(bool drain) noexcept;
/**
......
......@@ -87,7 +87,12 @@ AudioOutputControl::InternalOpen2(const AudioFormat in_audio_format)
output->out_audio_format);
} catch (const std::runtime_error &e) {
open = false;
{
const ScopeUnlock unlock(mutex);
output->Close(false);
}
std::throw_with_nested(FormatRuntimeError("Failed to convert for \"%s\" [%s]",
GetName(), output->plugin.name));
}
......@@ -194,7 +199,12 @@ AudioOutputControl::InternalClose(bool drain) noexcept
assert(IsOpen());
open = false;
{
const ScopeUnlock unlock(mutex);
output->Close(drain);
}
source.Close();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment