diff options
author | Benoit Foucher <benoit@zeroc.com> | 2010-05-04 16:19:09 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2010-05-04 16:19:09 +0200 |
commit | c708a4d21e3ea6081d257ade177ed0cd4d20ab04 (patch) | |
tree | 6a469e70a116e193ea0d382bcefbb85d442d3482 /cpp/src/IceGrid/ServerI.cpp | |
parent | Added CHANGES entry for bug 4734 (diff) | |
download | ice-c708a4d21e3ea6081d257ade177ed0cd4d20ab04.tar.bz2 ice-c708a4d21e3ea6081d257ade177ed0cd4d20ab04.tar.xz ice-c708a4d21e3ea6081d257ade177ed0cd4d20ab04.zip |
Bug 4731 - IceGrid node observers bug
Diffstat (limited to 'cpp/src/IceGrid/ServerI.cpp')
-rw-r--r-- | cpp/src/IceGrid/ServerI.cpp | 28 |
1 files changed, 5 insertions, 23 deletions
diff --git a/cpp/src/IceGrid/ServerI.cpp b/cpp/src/IceGrid/ServerI.cpp index a4c13044d2e..e46e31ba5eb 100644 --- a/cpp/src/IceGrid/ServerI.cpp +++ b/cpp/src/IceGrid/ServerI.cpp @@ -1304,29 +1304,6 @@ ServerI::disableOnFailure() } void -ServerI::enableAfterFailure(bool force) -{ - if(_disableOnFailure == 0 || _failureTime == IceUtil::Time()) - { - return; - } - - if(force || - (_disableOnFailure > 0 && - (_failureTime + IceUtil::Time::seconds(_disableOnFailure) < IceUtil::Time::now(IceUtil::Time::Monotonic)))) - { - _activation = _previousActivation; - _failureTime = IceUtil::Time(); - } - - if(_timerTask) - { - _node->getTimer()->cancel(_timerTask); - _timerTask = 0; - } -} - -void ServerI::activationTimedOut() { ServerCommandPtr command; @@ -1771,6 +1748,7 @@ ServerI::update() } InternalServerDescriptorPtr oldDescriptor = _desc; + bool disabled = oldDescriptor && _activation == Disabled; try { if(_load->clearDir()) @@ -1863,6 +1841,10 @@ ServerI::update() _load->failed(ex); } + if(oldDescriptor && disabled != (_activation == Disabled)) + { + _node->observerUpdateServer(getDynamicInfo()); + } setStateNoSync(Inactive); command = nextCommand(); } |