diff --git a/server/core/dcb.cc b/server/core/dcb.cc index 6366a5a72..e93d60ea2 100644 --- a/server/core/dcb.cc +++ b/server/core/dcb.cc @@ -3155,10 +3155,8 @@ static uint32_t dcb_process_poll_events(DCB *dcb, uint32_t events) return rc; } -static uint32_t dcb_poll_handler(MXS_POLL_DATA *data, int thread_id, uint32_t events) +static uint32_t dcb_handler(DCB* dcb, uint32_t events) { - DCB *dcb = (DCB*)data; - this_thread.current_dcb = dcb; uint32_t rv = dcb_process_poll_events(dcb, events); this_thread.current_dcb = NULL; @@ -3166,6 +3164,13 @@ static uint32_t dcb_poll_handler(MXS_POLL_DATA *data, int thread_id, uint32_t ev return rv; } +static uint32_t dcb_poll_handler(MXS_POLL_DATA *data, int thread_id, uint32_t events) +{ + DCB *dcb = (DCB*)data; + + return dcb_handler(dcb, events); +} + class FakeEventTask: public mxs::WorkerDisposableTask { FakeEventTask(const FakeEventTask&); @@ -3182,7 +3187,7 @@ public: void execute(Worker& worker) { m_dcb->dcb_fakequeue = m_buffer; - dcb_process_poll_events(m_dcb, m_ev); + dcb_handler(m_dcb, m_ev); } private: