aboutsummaryrefslogtreecommitdiffstats
path: root/src/db/upnp/WorkQueue.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/db/upnp/WorkQueue.hxx')
-rw-r--r--src/db/upnp/WorkQueue.hxx20
1 files changed, 3 insertions, 17 deletions
diff --git a/src/db/upnp/WorkQueue.hxx b/src/db/upnp/WorkQueue.hxx
index ed58cb170..6a672273b 100644
--- a/src/db/upnp/WorkQueue.hxx
+++ b/src/db/upnp/WorkQueue.hxx
@@ -48,8 +48,6 @@ template <class T>
class WorkQueue {
// Configuration
const std::string name;
- const size_t high;
- const size_t low;
// Status
// Worker threads having called exit
@@ -72,8 +70,8 @@ public:
* meaning no limit. hi == -1 means that the queue is disabled.
* @param lo minimum count of tasks before worker starts. Default 1.
*/
- WorkQueue(const char *_name, size_t hi = 0, size_t lo = 1)
- :name(_name), high(hi), low(lo),
+ WorkQueue(const char *_name)
+ :name(_name),
n_workers_exited(0),
ok(false),
n_threads(0), threads(nullptr)
@@ -124,13 +122,6 @@ public:
{
const ScopeLock protect(mutex);
- while (ok && high > 0 && queue.size() >= high) {
- // Keep the order: we test ok AFTER the sleep...
- client_cond.wait(mutex);
- if (!ok)
- return false;
- }
-
queue.push(t);
// Just wake one worker, there is only one new task.
@@ -180,9 +171,7 @@ public:
if (!ok)
return false;
- while (ok && queue.size() < low) {
- if (queue.empty())
- client_cond.broadcast();
+ while (queue.empty()) {
worker_cond.wait(mutex);
if (!ok)
return false;
@@ -190,9 +179,6 @@ public:
tp = queue.front();
queue.pop();
-
- // No reason to wake up more than one client thread
- client_cond.signal();
return true;
}