Commit af4ffa91 authored by Max Kellermann's avatar Max Kellermann

decoder/Control: remove attribute `client_is_waiting`

This optimization is useless because sane pthread_cond_signal() implementations check the number of waiters and do not invoke a system call if there are none.
parent f3ed2c0a
......@@ -145,8 +145,7 @@ DecoderBridge::FlushChunk() noexcept
dc.pipe->Push(std::move(chunk));
const std::lock_guard<Mutex> protect(dc.mutex);
if (dc.client_is_waiting)
dc.client_cond.notify_one();
dc.client_cond.notify_one();
}
bool
......
......@@ -43,13 +43,7 @@ DecoderControl::~DecoderControl() noexcept
void
DecoderControl::WaitForDecoder(std::unique_lock<Mutex> &lock) noexcept
{
assert(!client_is_waiting);
client_is_waiting = true;
client_cond.wait(lock);
assert(client_is_waiting);
client_is_waiting = false;
}
void
......
......@@ -111,13 +111,6 @@ private:
bool quit;
public:
/**
* Is the client currently waiting for the DecoderThread? If
* false, the DecoderThread may omit invoking Cond::signal(),
* reducing the number of system calls.
*/
bool client_is_waiting = false;
bool seek_error;
bool seekable;
SongTime seek_time;
......
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