summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Ice/ConnectRequestHandler.cpp5
-rw-r--r--cpp/src/Ice/ConnectionFactory.cpp6
2 files changed, 7 insertions, 4 deletions
diff --git a/cpp/src/Ice/ConnectRequestHandler.cpp b/cpp/src/Ice/ConnectRequestHandler.cpp
index f306b6c26b6..8e04d74512e 100644
--- a/cpp/src/Ice/ConnectRequestHandler.cpp
+++ b/cpp/src/Ice/ConnectRequestHandler.cpp
@@ -226,6 +226,7 @@ ConnectRequestHandler::setConnection(const Ice::ConnectionIPtr& connection, bool
{
{
Lock sync(*this);
+ assert(!_exception.get() && !_connection);
_connection = connection;
_compress = compress;
}
@@ -251,6 +252,7 @@ ConnectRequestHandler::setException(const Ice::LocalException& ex)
{
{
Lock sync(*this);
+ assert(!_initialized && !_exception.get());
_exception.reset(dynamic_cast<Ice::LocalException*>(ex.ice_clone()));
_proxy = 0; // Break cyclic reference count.
_delegate = 0; // Break cyclic reference count.
@@ -316,7 +318,7 @@ ConnectRequestHandler::flushRequests()
{
{
Lock sync(*this);
- assert(_connection);
+ assert(_connection && !_initialized);
while(_batchRequestInProgress)
{
@@ -396,6 +398,7 @@ ConnectRequestHandler::flushRequests()
{
Lock sync(*this);
+ assert(!_initialized);
_initialized = true;
_flushing = false;
notifyAll();
diff --git a/cpp/src/Ice/ConnectionFactory.cpp b/cpp/src/Ice/ConnectionFactory.cpp
index 1704340d5f4..12fd5e15374 100644
--- a/cpp/src/Ice/ConnectionFactory.cpp
+++ b/cpp/src/Ice/ConnectionFactory.cpp
@@ -732,7 +732,7 @@ IceInternal::OutgoingConnectionFactory::finishGetConnection(const vector<Connect
const ConnectCallbackPtr& cb,
const ConnectionIPtr& connection)
{
- vector<ConnectCallbackPtr> callbacks;
+ set<ConnectCallbackPtr> callbacks;
{
IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this);
@@ -747,7 +747,7 @@ IceInternal::OutgoingConnectionFactory::finishGetConnection(const vector<Connect
{
map<ConnectorInfo, set<ConnectCallbackPtr> >::iterator q = _pending.find(*p);
assert(q != _pending.end());
- callbacks.insert(callbacks.end(), q->second.begin(), q->second.end());
+ callbacks.insert(q->second.begin(), q->second.end());
_pending.erase(q);
}
notifyAll();
@@ -765,7 +765,7 @@ IceInternal::OutgoingConnectionFactory::finishGetConnection(const vector<Connect
//
// Notify any waiting callbacks.
//
- for(vector<ConnectCallbackPtr>::const_iterator p = callbacks.begin(); p != callbacks.end(); ++p)
+ for(set<ConnectCallbackPtr>::const_iterator p = callbacks.begin(); p != callbacks.end(); ++p)
{
(*p)->getConnection();
}