Arrange so that startup connections are handled by main Worker
When the Worker mechanism has been initialized the current_worker_id of the calling thread is set to 0. That way, connections can be created after Worker::init() has been called, but before the workers have been started. Such connections will be handled by the worker that is running in the main thread.
This commit is contained in:
@ -214,6 +214,16 @@ bool Worker::init()
|
|||||||
MXS_ERROR("Could not allocate an epoll instance.");
|
MXS_ERROR("Could not allocate an epoll instance.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this_unit.initialized)
|
||||||
|
{
|
||||||
|
// When the initialization has successfully been performed, we set the
|
||||||
|
// current_worker_id of this thread to 0. That way any connections that
|
||||||
|
// are made during service startup (after this function returns, but
|
||||||
|
// bofore the workes have been started) will be handled by the worker
|
||||||
|
// that will be running in the main thread.
|
||||||
|
this_thread.current_worker_id = 0;
|
||||||
|
}
|
||||||
|
|
||||||
return this_unit.initialized;
|
return this_unit.initialized;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user