diff options
author | Max Kellermann <max@duempel.org> | 2014-01-14 11:31:49 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2014-01-14 11:31:49 +0100 |
commit | 9f316e11bd8c2f62730a4c8ae391b2236c68a726 (patch) | |
tree | 3fb395cfc44d7ce9357d8ab60c23ba64951b5780 /src | |
parent | c6d8f6da7097012744286249b1bc7310fd8202fe (diff) | |
download | mpd-9f316e11bd8c2f62730a4c8ae391b2236c68a726.tar.gz mpd-9f316e11bd8c2f62730a4c8ae391b2236c68a726.tar.xz mpd-9f316e11bd8c2f62730a4c8ae391b2236c68a726.zip |
db/upnp/WorkQueue: remove unused method waitIdle()
Contrary to setTerminateAndWait()'s documentation, the method does
wait for worker threads to exit via pthread_join().
Diffstat (limited to '')
-rw-r--r-- | src/db/upnp/WorkQueue.hxx | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/src/db/upnp/WorkQueue.hxx b/src/db/upnp/WorkQueue.hxx index 89f5528cb..944b0f6ca 100644 --- a/src/db/upnp/WorkQueue.hxx +++ b/src/db/upnp/WorkQueue.hxx @@ -154,50 +154,8 @@ public: return true; } - /** - * Wait until the queue is inactive. Called from client. - * - * Waits until the task queue is empty and the workers are all - * back sleeping. Used by the client to wait for all current work - * to be completed, when it needs to perform work that couldn't be - * done in parallel with the worker's tasks, or before shutting - * down. Work can be resumed after calling this. Note that the - * only thread which can call it safely is the client just above - * (which can control the task flow), else there could be - * tasks in the intermediate queues. - * To rephrase: there is no warranty on return that the queue is actually - * idle EXCEPT if the caller knows that no jobs are still being created. - * It would be possible to transform this into a safe call if some kind - * of suspend condition was set on the queue by waitIdle(), to be reset by - * some kind of "resume" call. Not currently the case. - */ - bool waitIdle() - { - const ScopeLock protect(mutex); - - if (!IsOK()) { - LOGERR(("WorkQueue::waitIdle:%s: not ok or can't lock\n", - name.c_str())); - return false; - } - - // We're done when the queue is empty AND all workers are back - // waiting for a task. - while (IsOK() && (queue.size() > 0 || - n_workers_waiting != n_threads)) { - n_clients_waiting++; - client_cond.wait(mutex); - n_clients_waiting--; - } - - return IsOK(); - } - /** Tell the workers to exit, and wait for them. - * - * Does not bother about tasks possibly remaining on the queue, so - * should be called after waitIdle() for an orderly shutdown. */ void setTerminateAndWait() { |