diff options
Diffstat (limited to 'cpp/src/qpid/broker/Timer.cpp')
| -rw-r--r-- | cpp/src/qpid/broker/Timer.cpp | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/cpp/src/qpid/broker/Timer.cpp b/cpp/src/qpid/broker/Timer.cpp index 28b1aa56d7..173f350cde 100644 --- a/cpp/src/qpid/broker/Timer.cpp +++ b/cpp/src/qpid/broker/Timer.cpp @@ -85,17 +85,13 @@ void Timer::start() void Timer::stop() { - signalStop(); - runner.join(); -} - -void Timer::signalStop() -{ - Monitor::ScopedLock l(monitor); - if (active) { + { + Monitor::ScopedLock l(monitor); + if (!active) return; active = false; monitor.notifyAll(); } + runner.join(); } bool Later::operator()(const intrusive_ptr<TimerTask>& a, |
