summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/Timer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/broker/Timer.cpp')
-rw-r--r--cpp/src/qpid/broker/Timer.cpp12
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,