diff options
| author | Alan Conway <aconway@apache.org> | 2007-11-01 00:38:58 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2007-11-01 00:38:58 +0000 |
| commit | d4838b1db929de6d650b7cdf574c04425c01b38d (patch) | |
| tree | d519ff7d639f6f1bca111bc12930abf1da405e67 /cpp/src/qpid/client | |
| parent | af6457122a32f1f5a0224fc54f3d0c24377510e3 (diff) | |
| download | qpid-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.cpp | 4 |
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); |
