diff options
author | Benoit Foucher <benoit@zeroc.com> | 2013-09-18 18:51:35 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2013-09-18 18:51:35 +0200 |
commit | ca90e2a02f126dffc31e8abf278cacbb6e3ab498 (patch) | |
tree | 907cb951f175ad0533919086a895288b169ea6af /cpp/src/Ice/EndpointI.cpp | |
parent | Fixed IceGrid/SqlDB build failure on Windows (diff) | |
download | ice-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.cpp | 13 |
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(); |