Work queue thread assertions. Reset thread after fork.
This commit is contained in:
@@ -660,3 +660,19 @@ nxt_event_engine_request_find_remove(nxt_event_engine_t *engine,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if (NXT_DEBUG)
|
||||||
|
|
||||||
|
void nxt_event_engine_thread_adopt(nxt_event_engine_t *engine)
|
||||||
|
{
|
||||||
|
nxt_work_queue_thread_adopt(&engine->fast_work_queue);
|
||||||
|
nxt_work_queue_thread_adopt(&engine->accept_work_queue);
|
||||||
|
nxt_work_queue_thread_adopt(&engine->read_work_queue);
|
||||||
|
nxt_work_queue_thread_adopt(&engine->socket_work_queue);
|
||||||
|
nxt_work_queue_thread_adopt(&engine->connect_work_queue);
|
||||||
|
nxt_work_queue_thread_adopt(&engine->write_work_queue);
|
||||||
|
nxt_work_queue_thread_adopt(&engine->shutdown_work_queue);
|
||||||
|
nxt_work_queue_thread_adopt(&engine->close_work_queue);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -531,5 +531,15 @@ nxt_thread_event_engine(void)
|
|||||||
return thr->engine;
|
return thr->engine;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if (NXT_DEBUG)
|
||||||
|
|
||||||
|
NXT_EXPORT void nxt_event_engine_thread_adopt(nxt_event_engine_t *engine);
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#define nxt_event_engine_thread_adopt(_engine)
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#endif /* _NXT_EVENT_ENGINE_H_INCLUDED_ */
|
#endif /* _NXT_EVENT_ENGINE_H_INCLUDED_ */
|
||||||
|
|||||||
@@ -50,6 +50,8 @@ nxt_process_create(nxt_task_t *task, nxt_process_t *process)
|
|||||||
|
|
||||||
nxt_port_reset_next_id();
|
nxt_port_reset_next_id();
|
||||||
|
|
||||||
|
nxt_event_engine_thread_adopt(task->thread->engine);
|
||||||
|
|
||||||
/* Remove not ready processes */
|
/* Remove not ready processes */
|
||||||
nxt_runtime_process_each(rt, p) {
|
nxt_runtime_process_each(rt, p) {
|
||||||
|
|
||||||
|
|||||||
@@ -1273,6 +1273,8 @@ nxt_router_thread_start(void *data)
|
|||||||
|
|
||||||
thread = nxt_thread();
|
thread = nxt_thread();
|
||||||
|
|
||||||
|
nxt_event_engine_thread_adopt(engine);
|
||||||
|
|
||||||
/* STUB */
|
/* STUB */
|
||||||
thread->runtime = engine->task.thread->runtime;
|
thread->runtime = engine->task.thread->runtime;
|
||||||
|
|
||||||
|
|||||||
@@ -58,6 +58,26 @@ nxt_work_queue_thread_assert(nxt_work_queue_t *wq)
|
|||||||
nxt_abort();
|
nxt_abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void nxt_work_queue_thread_adopt(nxt_work_queue_t *wq)
|
||||||
|
{
|
||||||
|
nxt_thread_t *thread;
|
||||||
|
|
||||||
|
thread = nxt_thread();
|
||||||
|
|
||||||
|
wq->pid = nxt_pid;
|
||||||
|
wq->tid = nxt_thread_tid(thread);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
nxt_work_queue_name(nxt_work_queue_t *wq, const char* name)
|
||||||
|
{
|
||||||
|
nxt_work_queue_thread_assert(wq);
|
||||||
|
|
||||||
|
wq->name = name;
|
||||||
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#define nxt_work_queue_thread_assert(wq)
|
#define nxt_work_queue_thread_assert(wq)
|
||||||
|
|||||||
@@ -104,15 +104,16 @@ NXT_EXPORT nxt_work_handler_t nxt_work_queue_pop(nxt_work_queue_t *wq,
|
|||||||
|
|
||||||
#if (NXT_DEBUG)
|
#if (NXT_DEBUG)
|
||||||
|
|
||||||
#define \
|
NXT_EXPORT void nxt_work_queue_name(nxt_work_queue_t *wq, const char* name);
|
||||||
nxt_work_queue_name(_wq, _name) \
|
NXT_EXPORT void nxt_work_queue_thread_adopt(nxt_work_queue_t *wq);
|
||||||
(_wq)->name = _name
|
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#define \
|
#define \
|
||||||
nxt_work_queue_name(_wq, _name)
|
nxt_work_queue_name(_wq, _name)
|
||||||
|
|
||||||
|
#define nxt_work_queue_thread_adopt(_wq)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user