diff options
Diffstat (limited to 'qpid/cpp')
| -rw-r--r-- | qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp | 5 |
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(); } |
