Commit b0199245 authored by Max Kellermann's avatar Max Kellermann

output/Thread: move code to method InternalDrain()

parent b93e3b2c
...@@ -520,6 +520,13 @@ private: ...@@ -520,6 +520,13 @@ private:
void InternalPause() noexcept; void InternalPause() noexcept;
/** /**
* Runs inside the OutputThread.
* Caller must lock the mutex.
* Handles exceptions.
*/
void InternalDrain() noexcept;
/**
* The OutputThread. * The OutputThread.
*/ */
void Task(); void Task();
......
...@@ -362,6 +362,14 @@ AudioOutputControl::InternalPause() noexcept ...@@ -362,6 +362,14 @@ AudioOutputControl::InternalPause() noexcept
skip_delay = true; skip_delay = true;
} }
inline void
AudioOutputControl::InternalDrain() noexcept
{
const ScopeUnlock unlock(mutex);
output->Drain();
}
void void
AudioOutputControl::Task() AudioOutputControl::Task()
{ {
...@@ -421,10 +429,8 @@ AudioOutputControl::Task() ...@@ -421,10 +429,8 @@ AudioOutputControl::Task()
continue; continue;
case Command::DRAIN: case Command::DRAIN:
if (open) { if (open)
const ScopeUnlock unlock(mutex); InternalDrain();
output->Drain();
}
CommandFinished(); CommandFinished();
continue; continue;
......
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