diff --git a/include/maxscale/monitor.hh b/include/maxscale/monitor.hh index bf26847bd..07d54bd9a 100644 --- a/include/maxscale/monitor.hh +++ b/include/maxscale/monitor.hh @@ -27,6 +27,8 @@ public: virtual ~MonitorInstance(); + void stop(); + protected: MonitorInstance(MXS_MONITOR* pMonitor); diff --git a/server/core/monitor.cc b/server/core/monitor.cc index 02bdf0746..d5c129187 100644 --- a/server/core/monitor.cc +++ b/server/core/monitor.cc @@ -2522,6 +2522,19 @@ MonitorInstance::~MonitorInstance() ss_dassert(!m_script); } +void MonitorInstance::stop() +{ + ss_dassert(m_thread); + + atomic_store_int32(&m_shutdown, 1); + thread_wait(m_thread); + m_thread = 0; + m_shutdown = 0; + + MXS_FREE(m_script); + m_script = NULL; +} + //static void MonitorInstance::main(void* pArg) { diff --git a/server/modules/monitor/auroramon/auroramon.cc b/server/modules/monitor/auroramon/auroramon.cc index 126a6455c..586fe5c1f 100644 --- a/server/modules/monitor/auroramon/auroramon.cc +++ b/server/modules/monitor/auroramon/auroramon.cc @@ -219,24 +219,6 @@ bool AuroraMonitor::start(const MXS_CONFIG_PARAMETER *params) return started; } -/** - * Stop a running monitor - * - * @param arg Handle on thr running monior - */ -void AuroraMonitor::stop() -{ - ss_dassert(m_thread); - - m_shutdown = true; - thread_wait(m_thread); - m_thread = 0; - m_shutdown = false; - - MXS_FREE(m_script); - m_script = NULL; -} - /** * Diagnostic interface * diff --git a/server/modules/monitor/auroramon/auroramon.hh b/server/modules/monitor/auroramon/auroramon.hh index 39d6bf405..bd7a5ec4c 100644 --- a/server/modules/monitor/auroramon/auroramon.hh +++ b/server/modules/monitor/auroramon/auroramon.hh @@ -29,7 +29,6 @@ public: static AuroraMonitor* create(MXS_MONITOR* monitor); void destroy(); bool start(const MXS_CONFIG_PARAMETER* param); - void stop(); void diagnostics(DCB* dcb) const; json_t* diagnostics_json() const; diff --git a/server/modules/monitor/galeramon/galeramon.cc b/server/modules/monitor/galeramon/galeramon.cc index 5e37ffc79..35f8fe030 100644 --- a/server/modules/monitor/galeramon/galeramon.cc +++ b/server/modules/monitor/galeramon/galeramon.cc @@ -202,24 +202,6 @@ bool GaleraMonitor::start(const MXS_CONFIG_PARAMETER *params) return started; } -/** - * Stop a running monitor - * - * @param arg Handle on thr running monior - */ -void GaleraMonitor::stop() -{ - ss_dassert(m_thread); - - m_shutdown = true; - thread_wait(m_thread); - m_thread = 0; - m_shutdown = false; - - MXS_FREE(m_script); - m_script = NULL; -} - /** * Diagnostic interface * diff --git a/server/modules/monitor/galeramon/galeramon.hh b/server/modules/monitor/galeramon/galeramon.hh index 87adc55cf..8968bc969 100644 --- a/server/modules/monitor/galeramon/galeramon.hh +++ b/server/modules/monitor/galeramon/galeramon.hh @@ -61,7 +61,6 @@ public: static GaleraMonitor* create(MXS_MONITOR* monitor); void destroy(); bool start(const MXS_CONFIG_PARAMETER* param); - void stop(); void diagnostics(DCB* dcb) const; json_t* diagnostics_json() const; diff --git a/server/modules/monitor/grmon/grmon.cc b/server/modules/monitor/grmon/grmon.cc index 4a54acdf6..d506e9cd3 100644 --- a/server/modules/monitor/grmon/grmon.cc +++ b/server/modules/monitor/grmon/grmon.cc @@ -65,16 +65,6 @@ bool GRMon::start(const MXS_CONFIG_PARAMETER* params) return started; } -void GRMon::stop() -{ - ss_dassert(m_thread); - - atomic_store_int32(&m_shutdown, 1); - thread_wait(m_thread); - m_thread = 0; - m_shutdown = 0; -} - void GRMon::diagnostics(DCB* dcb) const { } diff --git a/server/modules/monitor/grmon/grmon.hh b/server/modules/monitor/grmon/grmon.hh index d464d52b7..0b506c582 100644 --- a/server/modules/monitor/grmon/grmon.hh +++ b/server/modules/monitor/grmon/grmon.hh @@ -29,7 +29,6 @@ public: static GRMon* create(MXS_MONITOR* monitor); void destroy(); bool start(const MXS_CONFIG_PARAMETER* params); - void stop(); void diagnostics(DCB* dcb) const; json_t* diagnostics_json() const; diff --git a/server/modules/monitor/mmmon/mmmon.cc b/server/modules/monitor/mmmon/mmmon.cc index d87e5f5da..81b31070a 100644 --- a/server/modules/monitor/mmmon/mmmon.cc +++ b/server/modules/monitor/mmmon/mmmon.cc @@ -154,22 +154,6 @@ bool MMMonitor::start(const MXS_CONFIG_PARAMETER *params) return started; } -/** - * Stop a running monitor - * - * @param arg Handle on thr running monior - */ -void MMMonitor::stop() -{ - m_shutdown = 1; - thread_wait(m_thread); - m_thread = 0; - m_shutdown = 0; - - MXS_FREE(m_script); - m_script = NULL; -} - /** * Diagnostic interface * diff --git a/server/modules/monitor/mmmon/mmmon.hh b/server/modules/monitor/mmmon/mmmon.hh index 9b49e6bd5..623b9af58 100644 --- a/server/modules/monitor/mmmon/mmmon.hh +++ b/server/modules/monitor/mmmon/mmmon.hh @@ -29,7 +29,6 @@ public: static MMMonitor* create(MXS_MONITOR* monitor); void destroy(); bool start(const MXS_CONFIG_PARAMETER* param); - void stop(); void diagnostics(DCB* dcb) const; json_t* diagnostics_json() const; diff --git a/server/modules/monitor/ndbclustermon/ndbclustermon.cc b/server/modules/monitor/ndbclustermon/ndbclustermon.cc index 3775ee44d..2e61c2571 100644 --- a/server/modules/monitor/ndbclustermon/ndbclustermon.cc +++ b/server/modules/monitor/ndbclustermon/ndbclustermon.cc @@ -137,24 +137,6 @@ bool NDBCMonitor::start(const MXS_CONFIG_PARAMETER *params) return started; } -/** - * Stop a running monitor - * - * @param arg Handle on thr running monior - */ -void NDBCMonitor::stop() -{ - ss_dassert(m_thread); - - m_shutdown = 1; - thread_wait(m_thread); - m_thread = 0; - m_shutdown = 0; - - MXS_FREE(m_script); - m_script = NULL; -} - /** * Diagnostic interface * diff --git a/server/modules/monitor/ndbclustermon/ndbclustermon.hh b/server/modules/monitor/ndbclustermon/ndbclustermon.hh index 434440f4f..d47d92293 100644 --- a/server/modules/monitor/ndbclustermon/ndbclustermon.hh +++ b/server/modules/monitor/ndbclustermon/ndbclustermon.hh @@ -29,7 +29,6 @@ public: static NDBCMonitor* create(MXS_MONITOR* monitor); void destroy(); bool start(const MXS_CONFIG_PARAMETER* param); - void stop(); void diagnostics(DCB* dcb) const; json_t* diagnostics_json() const;