threadpool: send signal only when queue is empty
PR-URL: https://github.com/libuv/libuv/pull/460 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
This commit is contained in:
parent
350b2b446a
commit
0f1bdb6b13
@ -101,9 +101,12 @@ static void worker(void* arg) {
|
||||
|
||||
|
||||
static void post(QUEUE* q) {
|
||||
int empty_queue;
|
||||
uv_mutex_lock(&mutex);
|
||||
empty_queue = QUEUE_EMPTY(&wq);
|
||||
QUEUE_INSERT_TAIL(&wq, q);
|
||||
uv_cond_signal(&cond);
|
||||
if (empty_queue)
|
||||
uv_cond_signal(&cond);
|
||||
uv_mutex_unlock(&mutex);
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user