diff options
-rw-r--r-- | qpid/cpp/src/qpid/broker/AsyncCompletion.h | 6 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/broker/SessionState.cpp | 2 |
2 files changed, 4 insertions, 4 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; } }; diff --git a/qpid/cpp/src/qpid/broker/SessionState.cpp b/qpid/cpp/src/qpid/broker/SessionState.cpp index 1ed3277aae..18dbf63487 100644 --- a/qpid/cpp/src/qpid/broker/SessionState.cpp +++ b/qpid/cpp/src/qpid/broker/SessionState.cpp @@ -464,7 +464,7 @@ void SessionState::IncompleteIngressMsgXfer::completed(bool sync) session->completeRcvMsg(id, requiresAccept, requiresSync); } } - completerContext.reset(); // ??? KAG optional ??? + completerContext = boost::intrusive_ptr<AsyncCommandCompleter>(); } |