diff options
Diffstat (limited to 'qpid/cpp/src/qpid/broker/AsyncCompletion.h')
-rw-r--r-- | qpid/cpp/src/qpid/broker/AsyncCompletion.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/qpid/cpp/src/qpid/broker/AsyncCompletion.h b/qpid/cpp/src/qpid/broker/AsyncCompletion.h index 3190861e14..fef994438f 100644 --- a/qpid/cpp/src/qpid/broker/AsyncCompletion.h +++ b/qpid/cpp/src/qpid/broker/AsyncCompletion.h @@ -103,14 +103,14 @@ class AsyncCompletion void invokeCallback(bool sync) { qpid::sys::Mutex::ScopedLock l(callbackLock); if (active) { - if (callback) { + if (callback.get()) { inCallback = true; { qpid::sys::Mutex::ScopedUnlock ul(callbackLock); callback->completed(sync); } inCallback = false; - callback.reset(); + callback = boost::intrusive_ptr<Callback>(); callbackLock.notifyAll(); } active = false; @@ -192,7 +192,7 @@ class AsyncCompletion virtual void cancel() { qpid::sys::Mutex::ScopedLock l(callbackLock); while (inCallback) callbackLock.wait(); - callback.reset(); + callback = boost::intrusive_ptr<Callback>(); active = false; } }; |