MXS-2218 Add skeleton MainWorker
First step in the introduction of a MainWorker. When finished, all routing workers will run in separate threads (currently one runs in the main thread), and the main worker run in the main thread. Housekeeper will disappear and to the extent housekeeping tasks are needed (where applicable they will be changed into delayed calls) they will be run by the main worker.
This commit is contained in:
@ -19,6 +19,7 @@ add_library(maxscale-common SHARED
|
||||
listener.cc
|
||||
load_utils.cc
|
||||
log.cc
|
||||
mainworker.cc
|
||||
mariadb.cc
|
||||
maxscale_pcre2.cc
|
||||
misc.cc
|
||||
|
65
server/core/mainworker.cc
Normal file
65
server/core/mainworker.cc
Normal file
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* Copyright (c) 2018 MariaDB Corporation Ab
|
||||
*
|
||||
* Use of this software is governed by the Business Source License included
|
||||
* in the LICENSE.TXT file and at www.mariadb.com/bsl11.
|
||||
*
|
||||
* Change Date: 2022-01-01
|
||||
*
|
||||
* On the date above, in accordance with the Business Source License, use
|
||||
* of this software will be governed by version 2 or later of the General
|
||||
* Public License.
|
||||
*/
|
||||
|
||||
#include <maxscale/mainworker.hh>
|
||||
#include <signal.h>
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
static struct ThisUnit
|
||||
{
|
||||
maxscale::MainWorker* pThis;
|
||||
} this_unit;
|
||||
|
||||
}
|
||||
|
||||
namespace maxscale
|
||||
{
|
||||
|
||||
MainWorker::MainWorker()
|
||||
{
|
||||
mxb_assert(!this_unit.pThis);
|
||||
|
||||
this_unit.pThis = this;
|
||||
}
|
||||
|
||||
MainWorker::~MainWorker()
|
||||
{
|
||||
mxb_assert(this_unit.pThis);
|
||||
|
||||
this_unit.pThis = nullptr;
|
||||
}
|
||||
|
||||
//static
|
||||
MainWorker& MainWorker::get()
|
||||
{
|
||||
mxb_assert(this_unit.pThis);
|
||||
|
||||
return *this_unit.pThis;
|
||||
}
|
||||
|
||||
bool MainWorker::pre_run()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
void MainWorker::post_run()
|
||||
{
|
||||
}
|
||||
|
||||
void MainWorker::epoll_tick()
|
||||
{
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user