summaryrefslogtreecommitdiff
path: root/qpid/cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/cpp')
-rw-r--r--qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp b/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp
index f390ee3f0e..5217bca7e7 100644
--- a/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp
+++ b/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp
@@ -249,7 +249,7 @@ void ConnectionContext::detach(boost::shared_ptr<SessionContext> ssn, boost::sha
}
wakeupDriver();
while (pn_link_state(lnk->sender) & PN_REMOTE_ACTIVE) {
- wait();
+ wait(ssn);
}
ssn->removeSender(lnk->getName());
}
@@ -262,7 +262,7 @@ void ConnectionContext::detach(boost::shared_ptr<SessionContext> ssn, boost::sha
}
wakeupDriver();
while (pn_link_state(lnk->receiver) & PN_REMOTE_ACTIVE) {
- wait();
+ wait(ssn);
}
ssn->removeReceiver(lnk->getName());
}
@@ -419,6 +419,7 @@ void ConnectionContext::check()
void ConnectionContext::wait()
{
+ check();
lock.wait();
check();
}