summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/client
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2007-11-01 00:38:58 +0000
committerAlan Conway <aconway@apache.org>2007-11-01 00:38:58 +0000
commitd4838b1db929de6d650b7cdf574c04425c01b38d (patch)
treed519ff7d639f6f1bca111bc12930abf1da405e67 /cpp/src/qpid/client
parentaf6457122a32f1f5a0224fc54f3d0c24377510e3 (diff)
downloadqpid-python-d4838b1db929de6d650b7cdf574c04425c01b38d.tar.gz
Preparation for session thread safety overhaul:
- simplified SessionState, responsibility for protocol states now in Handlers - qpid::RefCounted, qpid::intrusive_ptr reference counting support. - build boost unit tests as single exe, speeds up testing. - fixed leak in AsynchIOAcceptor.cpp git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@590869 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/client')
-rw-r--r--cpp/src/qpid/client/SessionCore.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/cpp/src/qpid/client/SessionCore.cpp b/cpp/src/qpid/client/SessionCore.cpp
index 30df574716..f7f0f52dba 100644
--- a/cpp/src/qpid/client/SessionCore.cpp
+++ b/cpp/src/qpid/client/SessionCore.cpp
@@ -52,6 +52,7 @@ inline void SessionCore::invariant() const {
break;
case RESUMING:
assert(session);
+ assert(session->getState() == SessionState::RESUMING);
assert(code==REPLY_SUCCESS);
assert(connection);
assert(channel.get());
@@ -142,6 +143,7 @@ void SessionCore::doSuspend(int code, const std::string& text) {
if (state != CLOSED) {
invariant();
detach(code, text);
+ session->suspend();
setState(SUSPENDED);
}
}
@@ -200,7 +202,7 @@ void SessionCore::resume(shared_ptr<ConnectionImpl> c) {
if (state==OPEN)
doSuspend(REPLY_SUCCESS, OK);
check(state==SUSPENDED, COMMAND_INVALID, QPID_MSG("Session cannot be resumed."));
- SequenceNumber sendAck=session->sendingAck();
+ SequenceNumber sendAck=session->resuming();
attaching(c);
proxy.resume(getId());
waitFor(OPEN);