summaryrefslogtreecommitdiff
path: root/qpid/cpp/src/qpid/broker/AsyncCompletion.h
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/cpp/src/qpid/broker/AsyncCompletion.h')
-rw-r--r--qpid/cpp/src/qpid/broker/AsyncCompletion.h6
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;
}
};