diff options
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Ice/CommunicatorI.cpp | 1 | ||||
-rw-r--r-- | cpp/src/Ice/ConnectionFactory.cpp | 11 | ||||
-rw-r--r-- | cpp/src/Ice/LocatorInfo.cpp | 1 | ||||
-rw-r--r-- | cpp/src/Ice/LocatorInfo.h | 1 | ||||
-rw-r--r-- | cpp/src/Ice/TcpTransceiver.cpp | 1 | ||||
-rw-r--r-- | cpp/src/Ice/TcpTransceiver.h | 1 | ||||
-rw-r--r-- | cpp/src/Ice/UdpTransceiver.cpp | 2 | ||||
-rw-r--r-- | cpp/src/Ice/UdpTransceiver.h | 1 |
8 files changed, 11 insertions, 8 deletions
diff --git a/cpp/src/Ice/CommunicatorI.cpp b/cpp/src/Ice/CommunicatorI.cpp index a8e020e8a4a..6b1c2c1e787 100644 --- a/cpp/src/Ice/CommunicatorI.cpp +++ b/cpp/src/Ice/CommunicatorI.cpp @@ -35,7 +35,6 @@ Ice::CommunicatorI::destroy() _instance->objectAdapterFactory()->shutdown(); _instance->destroy(); _instance = 0; - } } diff --git a/cpp/src/Ice/ConnectionFactory.cpp b/cpp/src/Ice/ConnectionFactory.cpp index 4ff5b560e3d..e2e630dccca 100644 --- a/cpp/src/Ice/ConnectionFactory.cpp +++ b/cpp/src/Ice/ConnectionFactory.cpp @@ -234,7 +234,6 @@ IceInternal::OutgoingConnectionFactory::destroy() { return; } - #ifdef _STLP_BEGIN_NAMESPACE // voidbind2nd is an STLport extension for broken compilers in IceUtil/Functional.h for_each(_connections.begin(), _connections.end(), @@ -435,6 +434,14 @@ IceInternal::IncomingConnectionFactory::IncomingConnectionFactory(const Instance { ConnectionPtr connection = new Connection(_instance, _transceiver, _endpoint, _adapter); _connections.push_back(connection); + + // + // We don't need an adapter anymore if we don't use an + // acceptor. So we break cyclic object dependency + // now. This is necessary, because the object adapter + // never clears the list of incoming connections it keeps. + // + _adapter = 0; } else { @@ -468,7 +475,7 @@ IceInternal::IncomingConnectionFactory::waitUntilFinished() { ::IceUtil::Monitor< ::IceUtil::Mutex>::Lock sync(*this); - while(_adapter) + while(_state != StateClosed || _adapter) { wait(); } diff --git a/cpp/src/Ice/LocatorInfo.cpp b/cpp/src/Ice/LocatorInfo.cpp index 1852d42b5b2..82233bd7f20 100644 --- a/cpp/src/Ice/LocatorInfo.cpp +++ b/cpp/src/Ice/LocatorInfo.cpp @@ -294,3 +294,4 @@ IceInternal::LocatorInfo::clearCache(const ReferencePtr& ref) } } } + diff --git a/cpp/src/Ice/LocatorInfo.h b/cpp/src/Ice/LocatorInfo.h index 6a1c013291e..4e58f70b470 100644 --- a/cpp/src/Ice/LocatorInfo.h +++ b/cpp/src/Ice/LocatorInfo.h @@ -46,6 +46,7 @@ private: class LocatorAdapterTable : public ::IceUtil::Shared, public ::IceUtil::Mutex { public: + LocatorAdapterTable(); bool get(const std::string&, ::std::vector<EndpointPtr>&) const; diff --git a/cpp/src/Ice/TcpTransceiver.cpp b/cpp/src/Ice/TcpTransceiver.cpp index 3f255c45fb5..e08e90fda6a 100644 --- a/cpp/src/Ice/TcpTransceiver.cpp +++ b/cpp/src/Ice/TcpTransceiver.cpp @@ -268,7 +268,6 @@ IceInternal::TcpTransceiver::toString() const } IceInternal::TcpTransceiver::TcpTransceiver(const InstancePtr& instance, SOCKET fd) : - _instance(instance), _traceLevels(instance->traceLevels()), _logger(instance->logger()), _fd(fd) diff --git a/cpp/src/Ice/TcpTransceiver.h b/cpp/src/Ice/TcpTransceiver.h index b2394b36505..ff1f4071671 100644 --- a/cpp/src/Ice/TcpTransceiver.h +++ b/cpp/src/Ice/TcpTransceiver.h @@ -40,7 +40,6 @@ private: friend class TcpConnector; friend class TcpAcceptor; - InstancePtr _instance; TraceLevelsPtr _traceLevels; ::Ice::LoggerPtr _logger; SOCKET _fd; diff --git a/cpp/src/Ice/UdpTransceiver.cpp b/cpp/src/Ice/UdpTransceiver.cpp index 87b859d490c..efe1f4787d3 100644 --- a/cpp/src/Ice/UdpTransceiver.cpp +++ b/cpp/src/Ice/UdpTransceiver.cpp @@ -219,7 +219,6 @@ IceInternal::UdpTransceiver::setProtocolName(const string& protocolName) IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, const string& host, int port, const string& protocolName) : - _instance(instance), _traceLevels(instance->traceLevels()), _logger(instance->logger()), _incoming(false), @@ -252,7 +251,6 @@ IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, const s IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, const string& host, int port, bool connect, const string& protocolName) : - _instance(instance), _traceLevels(instance->traceLevels()), _logger(instance->logger()), _incoming(true), diff --git a/cpp/src/Ice/UdpTransceiver.h b/cpp/src/Ice/UdpTransceiver.h index 0768b3b5442..598e17fad79 100644 --- a/cpp/src/Ice/UdpTransceiver.h +++ b/cpp/src/Ice/UdpTransceiver.h @@ -52,7 +52,6 @@ private: // friend class SUdpEndpoint; // TODO: Remove as soon as SUdpEndpoint uses SUdpTransceiver. // friend class SUdpTransceiver; - InstancePtr _instance; TraceLevelsPtr _traceLevels; ::Ice::LoggerPtr _logger; bool _incoming; |