aboutsummaryrefslogtreecommitdiffstats
path: root/src/db
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2014-01-14 11:31:49 +0100
committerMax Kellermann <max@duempel.org>2014-01-14 11:31:49 +0100
commit9f316e11bd8c2f62730a4c8ae391b2236c68a726 (patch)
tree3fb395cfc44d7ce9357d8ab60c23ba64951b5780 /src/db
parentc6d8f6da7097012744286249b1bc7310fd8202fe (diff)
downloadmpd-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 'src/db')
-rw-r--r--src/db/upnp/WorkQueue.hxx42
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()
{