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.
This commit is contained in:
Max Kellermann 2019-08-20 19:23:44 +02:00
parent f3ed2c0a82
commit af4ffa91fd
3 changed files with 1 additions and 15 deletions

View File

@ -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

View File

@ -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

View File

@ -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;