Further remove use of the worker C-API
This commit is contained in:
@ -68,22 +68,6 @@ enum mxs_worker_msg_id
|
|||||||
*/
|
*/
|
||||||
MXS_WORKER* mxs_worker_get(int worker_id);
|
MXS_WORKER* mxs_worker_get(int worker_id);
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the worker of the current thread.
|
|
||||||
*
|
|
||||||
* @return The worker instance or NULL if the calling thread is not associated
|
|
||||||
* with a worker.
|
|
||||||
*/
|
|
||||||
MXS_WORKER* mxs_worker_get_current();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the id of the worker of the current thread.
|
|
||||||
*
|
|
||||||
* @return The worker id or -1 if the calling thread is not associated
|
|
||||||
* with a worker.
|
|
||||||
*/
|
|
||||||
int mxs_worker_get_current_id();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the id of the worker.
|
* Return the id of the worker.
|
||||||
*
|
*
|
||||||
|
@ -98,7 +98,9 @@
|
|||||||
#include "maxscale/session.h"
|
#include "maxscale/session.h"
|
||||||
#include "maxscale/modules.h"
|
#include "maxscale/modules.h"
|
||||||
#include "maxscale/queuemanager.h"
|
#include "maxscale/queuemanager.h"
|
||||||
#include "maxscale/worker.h"
|
#include "maxscale/worker.hh"
|
||||||
|
|
||||||
|
using maxscale::Worker;
|
||||||
|
|
||||||
/* A DCB with null values, used for initialization */
|
/* A DCB with null values, used for initialization */
|
||||||
static DCB dcb_initialized;
|
static DCB dcb_initialized;
|
||||||
@ -2267,7 +2269,7 @@ dcb_hangup_foreach(struct server* server)
|
|||||||
intptr_t arg1 = (intptr_t)dcb_hangup_foreach_worker;
|
intptr_t arg1 = (intptr_t)dcb_hangup_foreach_worker;
|
||||||
intptr_t arg2 = (intptr_t)server;
|
intptr_t arg2 = (intptr_t)server;
|
||||||
|
|
||||||
mxs_worker_broadcast_message(MXS_WORKER_MSG_CALL, arg1, arg2);
|
Worker::broadcast_message(MXS_WORKER_MSG_CALL, arg1, arg2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -3075,7 +3077,7 @@ void dcb_add_to_list(DCB *dcb)
|
|||||||
* as that part is done in the final zombie processing.
|
* as that part is done in the final zombie processing.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int worker_id = mxs_worker_get_current_id();
|
int worker_id = Worker::get_current_id();
|
||||||
|
|
||||||
if (worker_id == dcb->poll.thread.id)
|
if (worker_id == dcb->poll.thread.id)
|
||||||
{
|
{
|
||||||
@ -3092,13 +3094,13 @@ void dcb_add_to_list(DCB *dcb)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MXS_WORKER* worker = mxs_worker_get(dcb->poll.thread.id);
|
Worker* worker = Worker::get(dcb->poll.thread.id);
|
||||||
ss_dassert(worker);
|
ss_dassert(worker);
|
||||||
|
|
||||||
intptr_t arg1 = (intptr_t)dcb_add_to_worker_list;
|
intptr_t arg1 = (intptr_t)dcb_add_to_worker_list;
|
||||||
intptr_t arg2 = (intptr_t)dcb;
|
intptr_t arg2 = (intptr_t)dcb;
|
||||||
|
|
||||||
if (!mxs_worker_post_message(worker, MXS_WORKER_MSG_CALL, arg1, arg2))
|
if (!worker->post_message(MXS_WORKER_MSG_CALL, arg1, arg2))
|
||||||
{
|
{
|
||||||
MXS_ERROR("Could not post DCB to worker.");
|
MXS_ERROR("Could not post DCB to worker.");
|
||||||
}
|
}
|
||||||
@ -3113,7 +3115,7 @@ void dcb_add_to_list(DCB *dcb)
|
|||||||
*/
|
*/
|
||||||
static void dcb_remove_from_list(DCB *dcb)
|
static void dcb_remove_from_list(DCB *dcb)
|
||||||
{
|
{
|
||||||
ss_dassert(mxs_worker_get_current_id() == dcb->poll.thread.id);
|
ss_dassert(Worker::get_current_id() == dcb->poll.thread.id);
|
||||||
|
|
||||||
if (dcb == all_dcbs[dcb->poll.thread.id])
|
if (dcb == all_dcbs[dcb->poll.thread.id])
|
||||||
{
|
{
|
||||||
|
@ -127,11 +127,11 @@ MXS_WORKER* mxs_worker_get(int worker_id)
|
|||||||
return Worker::get(worker_id);
|
return Worker::get(worker_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
MXS_WORKER* mxs_worker_get_current()
|
Worker* Worker::get_current()
|
||||||
{
|
{
|
||||||
Worker* pWorker = NULL;
|
Worker* pWorker = NULL;
|
||||||
|
|
||||||
int worker_id = this_thread.current_worker_id;
|
int worker_id = get_current_id();
|
||||||
|
|
||||||
if (worker_id != WORKER_ABSENT_ID)
|
if (worker_id != WORKER_ABSENT_ID)
|
||||||
{
|
{
|
||||||
@ -141,7 +141,7 @@ MXS_WORKER* mxs_worker_get_current()
|
|||||||
return pWorker;
|
return pWorker;
|
||||||
}
|
}
|
||||||
|
|
||||||
int mxs_worker_get_current_id()
|
int Worker::get_current_id()
|
||||||
{
|
{
|
||||||
return this_thread.current_worker_id;
|
return this_thread.current_worker_id;
|
||||||
}
|
}
|
||||||
@ -226,7 +226,7 @@ void Worker::shutdown()
|
|||||||
|
|
||||||
if (!m_shutdown_initiated)
|
if (!m_shutdown_initiated)
|
||||||
{
|
{
|
||||||
if (mxs_worker_post_message(this, MXS_WORKER_MSG_SHUTDOWN, 0, 0))
|
if (post_message(MXS_WORKER_MSG_SHUTDOWN, 0, 0))
|
||||||
{
|
{
|
||||||
m_shutdown_initiated = true;
|
m_shutdown_initiated = true;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user