From d4838b1db929de6d650b7cdf574c04425c01b38d Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Thu, 1 Nov 2007 00:38:58 +0000 Subject: 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 --- cpp/src/qpid/client/SessionCore.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'cpp/src/qpid/client') 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 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); -- cgit v1.2.1