diff options
author | Michi Henning <michi@zeroc.com> | 2008-10-17 17:04:16 +1000 |
---|---|---|
committer | Michi Henning <michi@zeroc.com> | 2008-10-17 17:04:16 +1000 |
commit | 4259685e44589a6efbb45f43f054b406dc8cf89c (patch) | |
tree | d3e26a8201d782e4cd4f617c090cafe9e609d943 /cpp/src/IceGrid/ServerI.cpp | |
parent | Changed swish-e perl scripts to tolerate -IceTouch suffix and to avoid (diff) | |
parent | Squashed commit of the following: (diff) | |
download | ice-4259685e44589a6efbb45f43f054b406dc8cf89c.tar.bz2 ice-4259685e44589a6efbb45f43f054b406dc8cf89c.tar.xz ice-4259685e44589a6efbb45f43f054b406dc8cf89c.zip |
Merge branch 'R3_3_branch'
Diffstat (limited to 'cpp/src/IceGrid/ServerI.cpp')
-rw-r--r-- | cpp/src/IceGrid/ServerI.cpp | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/cpp/src/IceGrid/ServerI.cpp b/cpp/src/IceGrid/ServerI.cpp index c033ff18817..9879fc99ca7 100644 --- a/cpp/src/IceGrid/ServerI.cpp +++ b/cpp/src/IceGrid/ServerI.cpp @@ -357,7 +357,14 @@ void TimedServerCommand::startTimer() { _timerTask = new CommandTimeoutTimerTask(this); - _timer->schedule(_timerTask, IceUtil::Time::seconds(_timeout)); + try + { + _timer->schedule(_timerTask, IceUtil::Time::seconds(_timeout)); + } + catch(const IceUtil::Exception&) + { + // Ignore, timer is destroyed because node is shutting down. + } } void @@ -2514,7 +2521,14 @@ ServerI::setStateNoSync(InternalServerState st, const std::string& reason) if(_activation == Always) { _timerTask = new DelayedStart(this, _node->getTraceLevels()); - _node->getTimer()->schedule(_timerTask, IceUtil::Time::milliSeconds(500)); + try + { + _node->getTimer()->schedule(_timerTask, IceUtil::Time::milliSeconds(500)); + } + catch(const IceUtil::Exception&) + { + // Ignore, timer is destroyed because node is shutting down. + } } else if(_activation == Disabled && _disableOnFailure > 0 && _failureTime != IceUtil::Time()) { @@ -2526,8 +2540,16 @@ ServerI::setStateNoSync(InternalServerState st, const std::string& reason) // callback is executed. // _timerTask = new DelayedStart(this, _node->getTraceLevels()); - _node->getTimer()->schedule(_timerTask, - IceUtil::Time::seconds(_disableOnFailure) + IceUtil::Time::milliSeconds(500)); + try + { + _node->getTimer()->schedule(_timerTask, + IceUtil::Time::seconds(_disableOnFailure) + + IceUtil::Time::milliSeconds(500)); + } + catch(const IceUtil::Exception&) + { + // Ignore, timer is destroyed because node is shutting down. + } } } |