summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Ice/CommunicatorI.cpp1
-rw-r--r--cpp/src/Ice/ConnectionFactory.cpp11
-rw-r--r--cpp/src/Ice/LocatorInfo.cpp1
-rw-r--r--cpp/src/Ice/LocatorInfo.h1
-rw-r--r--cpp/src/Ice/TcpTransceiver.cpp1
-rw-r--r--cpp/src/Ice/TcpTransceiver.h1
-rw-r--r--cpp/src/Ice/UdpTransceiver.cpp2
-rw-r--r--cpp/src/Ice/UdpTransceiver.h1
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;