summaryrefslogtreecommitdiff
path: root/cpp/src/Glacier2Lib/Application.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Glacier2Lib/Application.cpp')
-rw-r--r--cpp/src/Glacier2Lib/Application.cpp13
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;