summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/EndpointI.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2013-09-18 18:51:35 +0200
committerBenoit Foucher <benoit@zeroc.com>2013-09-18 18:51:35 +0200
commitca90e2a02f126dffc31e8abf278cacbb6e3ab498 (patch)
tree907cb951f175ad0533919086a895288b169ea6af /cpp/src/Ice/EndpointI.cpp
parentFixed IceGrid/SqlDB build failure on Windows (diff)
downloadice-ca90e2a02f126dffc31e8abf278cacbb6e3ab498.tar.bz2
ice-ca90e2a02f126dffc31e8abf278cacbb6e3ab498.tar.xz
ice-ca90e2a02f126dffc31e8abf278cacbb6e3ab498.zip
Fix for ICE-5437 - metrics test failure
Diffstat (limited to 'cpp/src/Ice/EndpointI.cpp')
-rw-r--r--cpp/src/Ice/EndpointI.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/cpp/src/Ice/EndpointI.cpp b/cpp/src/Ice/EndpointI.cpp
index 7d70754021b..e3ce67746b9 100644
--- a/cpp/src/Ice/EndpointI.cpp
+++ b/cpp/src/Ice/EndpointI.cpp
@@ -272,31 +272,32 @@ IceInternal::EndpointHostResolver::run()
{
threadObserver->stateChanged(ThreadStateInUseForOther, ThreadStateIdle);
}
+
+ if(r.observer)
+ {
+ r.observer->detach();
+ }
}
catch(const Ice::LocalException& ex)
{
if(r.observer)
{
r.observer->failed(ex.ice_name());
+ r.observer->detach();
}
r.callback->exception(ex);
}
-
- if(r.observer)
- {
- r.observer->detach();
- }
}
for(deque<ResolveEntry>::const_iterator p = _queue.begin(); p != _queue.end(); ++p)
{
Ice::CommunicatorDestroyedException ex(__FILE__, __LINE__);
- p->callback->exception(ex);
if(p->observer)
{
p->observer->failed(ex.ice_name());
p->observer->detach();
}
+ p->callback->exception(ex);
}
_queue.clear();