diff --git a/server/core/maxscale/workertask.hh b/server/core/maxscale/workertask.hh index 483903470..ee05aa620 100644 --- a/server/core/maxscale/workertask.hh +++ b/server/core/maxscale/workertask.hh @@ -47,11 +47,29 @@ public: * When the task has been executed, the instance will automatically be * deleted. */ -class WorkerDisposableTask : public WorkerTask +class WorkerDisposableTask { protected: + /** + * Constructor + */ WorkerDisposableTask(); + /** + * Destructor + */ + virtual ~WorkerDisposableTask(); + + /** + * @brief Called in the context of a specific worker. + * + * @param worker The worker in whose context `execute` is called. + * + * @attention As the function is called by a worker, the body of `execute` + * should execute quickly and not perform any blocking operations. + */ + virtual void execute(Worker& worker) = 0; + private: friend class Worker; diff --git a/server/core/workertask.cc b/server/core/workertask.cc index f4ab02329..2b264238c 100644 --- a/server/core/workertask.cc +++ b/server/core/workertask.cc @@ -33,6 +33,10 @@ WorkerDisposableTask::WorkerDisposableTask() { } +WorkerDisposableTask::~WorkerDisposableTask() +{ +} + void WorkerDisposableTask::inc_ref() { atomic_add(&m_count, 1);