Thread pools: various fixes.
This commit is contained in:
@@ -83,7 +83,7 @@ nxt_thread_pool_init(nxt_thread_pool_t *tp)
|
|||||||
|
|
||||||
if (nxt_fast_path(nxt_sem_init(&tp->sem, 0) == NXT_OK)) {
|
if (nxt_fast_path(nxt_sem_init(&tp->sem, 0) == NXT_OK)) {
|
||||||
|
|
||||||
link = nxt_malloc(sizeof(nxt_thread_link_t));
|
link = nxt_zalloc(sizeof(nxt_thread_link_t));
|
||||||
|
|
||||||
if (nxt_fast_path(link != NULL)) {
|
if (nxt_fast_path(link != NULL)) {
|
||||||
link->start = nxt_thread_pool_start;
|
link->start = nxt_thread_pool_start;
|
||||||
@@ -237,7 +237,7 @@ nxt_thread_pool_destroy(nxt_thread_pool_t *tp)
|
|||||||
|
|
||||||
if (!tp->ready) {
|
if (!tp->ready) {
|
||||||
nxt_work_queue_add(&thr->engine->fast_work_queue, tp->exit,
|
nxt_work_queue_add(&thr->engine->fast_work_queue, tp->exit,
|
||||||
&tp->task, tp, NULL);
|
&tp->engine->task, tp, NULL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -296,7 +296,7 @@ nxt_thread_pool_exit(nxt_task_t *task, void *obj, void *data)
|
|||||||
|
|
||||||
nxt_sem_destroy(&tp->sem);
|
nxt_sem_destroy(&tp->sem);
|
||||||
|
|
||||||
nxt_work_set(&tp->work, nxt_thread_pool_exit, &tp->task, tp,
|
nxt_work_set(&tp->work, tp->exit, &tp->engine->task, tp,
|
||||||
(void *) (uintptr_t) thread->handle);
|
(void *) (uintptr_t) thread->handle);
|
||||||
|
|
||||||
nxt_event_engine_post(tp->engine, &tp->work);
|
nxt_event_engine_post(tp->engine, &tp->work);
|
||||||
|
|||||||
Reference in New Issue
Block a user