summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/ServerI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceGrid/ServerI.cpp')
-rw-r--r--cpp/src/IceGrid/ServerI.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/cpp/src/IceGrid/ServerI.cpp b/cpp/src/IceGrid/ServerI.cpp
index ffc96e2e6fa..8538bd634c9 100644
--- a/cpp/src/IceGrid/ServerI.cpp
+++ b/cpp/src/IceGrid/ServerI.cpp
@@ -1840,7 +1840,12 @@ ServerI::setStateNoSync(InternalServerState st, const std::string& reason)
}
}
- if(toServerState(previous) != toServerState(_state))
+ //
+ // Don't send the server update if the state didn't change or if
+ // the server couldn't be forked.
+ //
+ if(toServerState(previous) != toServerState(_state) &&
+ !(previous == Inactive && _state == Deactivating))
{
NodeObserverPrx observer = _node->getObserver();
if(observer)