diff options
author | Mark Spruiell <mes@zeroc.com> | 2010-04-05 13:48:54 -0700 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2010-04-05 13:48:54 -0700 |
commit | 0a847eb2add5d58da1f37bcfef636fb17ec6c7f8 (patch) | |
tree | e3eff74295d166383aac139e5c5d2cad6013c7b7 /cpp/src | |
parent | another OpenSSL fix (diff) | |
download | ice-0a847eb2add5d58da1f37bcfef636fb17ec6c7f8.tar.bz2 ice-0a847eb2add5d58da1f37bcfef636fb17ec6c7f8.tar.xz ice-0a847eb2add5d58da1f37bcfef636fb17ec6c7f8.zip |
bug 4718 - Glacier2 helpers need to trap CommunicatorDestroyedException
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Glacier2Lib/Application.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/cpp/src/Glacier2Lib/Application.cpp b/cpp/src/Glacier2Lib/Application.cpp index befb98bc0ff..2f587cd7a98 100644 --- a/cpp/src/Glacier2Lib/Application.cpp +++ b/cpp/src/Glacier2Lib/Application.cpp @@ -83,12 +83,23 @@ public: IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor); while(true) { - _router->refreshSession_async(new AMI_Router_refreshSessionI(_app, this)); + try + { + _router->refreshSession_async(new AMI_Router_refreshSessionI(_app, this)); + } + catch(const Ice::CommunicatorDestroyedException&) + { + // + // AMI requests can raise CommunicatorDestroyedException directly. + // + break; + } if(!_done) { _monitor.timedWait(IceUtil::Time::seconds((int)_period)); } + if(_done) { break; |