diff options
Diffstat (limited to 'cpp/src/Glacier2Lib/Application.cpp')
-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; |