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:
chenttuuvv 2015-07-22 21:10:03 +08:00 committed by Saúl Ibarra Corretgé
parent 350b2b446a
commit 0f1bdb6b13

View File

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