diff --git a/src/lib/threadpool.c b/src/lib/threadpool.c index f87577184..faa2c7fed 100644 --- a/src/lib/threadpool.c +++ b/src/lib/threadpool.c @@ -399,6 +399,8 @@ static void pool_cleanup(pool_t *pool) uv_cond_destroy(&ts[i].cond); } + uv_close((uv_handle_t *)&pi->outq_async, NULL); + free(pi->threads); uv_mutex_destroy(&pi->mutex); pi->threads_nr = 0; @@ -599,7 +601,6 @@ void pool_close(pool_t *pool) { pool_impl_t *pi = pool->pi; - uv_close((uv_handle_t *)&pi->outq_async, NULL); uv_mutex_lock(&pi->mutex); pi->exiting = true; uv_mutex_unlock(&pi->mutex);