Files
MaxScale/include/maxscale/mainworker.hh
Johan Wikman 10216524ab 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.
2019-01-08 16:01:36 +02:00

51 lines
1017 B
C++

/*
* 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.
*/
#pragma once
#include <maxscale/ccdefs.hh>
#include <maxbase/worker.hh>
namespace maxscale
{
class MainWorker : public mxb::Worker
{
MainWorker(const MainWorker&) = delete;
MainWorker& operator=(const MainWorker&) = delete;
public:
/**
* Construct the main worker.
*
* @note There can be exactly one instance of @c MainWorker.
*/
MainWorker();
~MainWorker();
/**
* Return the main worker.
*
* @return The main worker.
*/
static MainWorker& get();
private:
bool pre_run() override;
void post_run() override;
void epoll_tick() override;
};
}