From b3992a21f76f38797723f70168ecda6be21e3719 Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Mon, 24 Sep 2007 21:15:46 +0000 Subject: 2007-09-24 Alan Conway * cpp/src/qpid/broker/SessionManager.cpp: Manage suspended sessions. Replaces SuspendedSessions. * cpp/src/qpid/broker/SessionState.cpp: Work with SessionManager. * cpp/src/qpid/broker/SessionHandler.cpp: Owns SessionState. * cpp/src/qpid/broker/Connection.h, .cpp: Owns session handlers. * cpp/src/qpid/broker/Broker.h: Added SessionManager member. * cpp/src/Makefile.am: Added broker/SessionManager.cpp * amqp.0-10-preview.xml: Added session-busy and channel-busy constants. * cpp/src/tests/.valgrind.supp-default: Added suppresssions for F7. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@578975 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/broker/Connection.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'cpp/src/qpid/broker/Connection.cpp') diff --git a/cpp/src/qpid/broker/Connection.cpp b/cpp/src/qpid/broker/Connection.cpp index b1b8abe4fd..a21db0f603 100644 --- a/cpp/src/qpid/broker/Connection.cpp +++ b/cpp/src/qpid/broker/Connection.cpp @@ -94,13 +94,12 @@ void Connection::closeChannel(uint16_t id) { } SessionHandler& Connection::getChannel(ChannelId id) { - boost::optional& ch = channels[id]; - if (!ch) { - ch = boost::in_place(boost::ref(*this), id); + ChannelMap::iterator i=channels.find(id); + if (i == channels.end()) { + i = channels.insert(id, new SessionHandler(*this, id)).first; } - return *ch; + return *i; } - }} -- cgit v1.2.1