summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/ServerI.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2010-05-04 16:19:09 +0200
committerBenoit Foucher <benoit@zeroc.com>2010-05-04 16:19:09 +0200
commitc708a4d21e3ea6081d257ade177ed0cd4d20ab04 (patch)
tree6a469e70a116e193ea0d382bcefbb85d442d3482 /cpp/src/IceGrid/ServerI.cpp
parentAdded CHANGES entry for bug 4734 (diff)
downloadice-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.cpp28
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();
}