diff --git a/include/maxscale/worker.h b/include/maxscale/worker.h index 1217c01fa..609436a06 100644 --- a/include/maxscale/worker.h +++ b/include/maxscale/worker.h @@ -21,13 +21,6 @@ MXS_BEGIN_DECLS typedef struct mxs_worker { MXS_POLL_DATA m_poll; /*< The poll data used by the polling mechanism. */ - int m_id; /*< The id of the worker. */ - int m_read_fd; /*< The file descriptor the worked reads from. */ - int m_write_fd; /*< The file descriptor used for sending data to the worker. */ - THREAD m_thread; /*< The thread handle of the worker. */ - bool m_started; /*< Whether the thread has been started or not. */ - bool m_should_shutdown; /*< Whether shutdown should be performed. */ - bool m_shutdown_initiated; /*< Whether shutdown has been initated. */ } MXS_WORKER; enum mxs_worker_msg_id @@ -75,10 +68,7 @@ MXS_WORKER* mxs_worker_get(int worker_id); * * @return The id of the worker. */ -static inline int mxs_worker_id(MXS_WORKER* pWorker) -{ - return pWorker->m_id; -} +int mxs_worker_id(MXS_WORKER* pWorker); /** * Post a message to a worker. diff --git a/server/core/maxscale/worker.h b/server/core/maxscale/worker.h index e980dbd83..12de89b0b 100644 --- a/server/core/maxscale/worker.h +++ b/server/core/maxscale/worker.h @@ -23,9 +23,6 @@ MXS_BEGIN_DECLS * * @return True, if the worker should shut down, false otherwise. */ -static inline bool mxs_worker_should_shutdown(MXS_WORKER* worker) -{ - return worker->m_should_shutdown; -} +bool mxs_worker_should_shutdown(MXS_WORKER* worker); MXS_END_DECLS diff --git a/server/core/worker.cc b/server/core/worker.cc index 6640718c4..beaa7c2f9 100644 --- a/server/core/worker.cc +++ b/server/core/worker.cc @@ -63,11 +63,12 @@ static bool modules_thread_init(); static void modules_thread_finish(); Worker::Worker(int id, int read_fd, int write_fd) + : m_id(id) + , m_read_fd(read_fd) + , m_write_fd(write_fd) { m_poll.handler = &Worker::poll_handler; - m_id = id; - m_read_fd = read_fd; - m_write_fd = write_fd; + m_thread = 0; m_started = false; m_should_shutdown = false; @@ -115,6 +116,16 @@ void Worker::finish() } } +int mxs_worker_id(MXS_WORKER* pWorker) +{ + return static_cast(pWorker)->id(); +} + +bool mxs_worker_should_shutdown(MXS_WORKER* pWorker) +{ + return static_cast(pWorker)->should_shutdown(); +} + Worker* Worker::get(int worker_id) { ss_dassert(worker_id < this_unit.n_workers);