diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2007-07-24 09:17:35 -0400 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2007-07-24 09:17:35 -0400 |
commit | e603bacb014c8d03b64a601aee354d8dff25cca0 (patch) | |
tree | 11f1b528bb7d7973a2b1f8e2f9fec645169e8ed7 /cpp/src/IceGrid/ServerI.cpp | |
parent | Merge branch 'master' of ssh://cvs.zeroc.com/home/git/ice (diff) | |
parent | http://bugzilla.zeroc.com/bugzilla/show_bug.cgi?id=2312 - changed 64 bit bin ... (diff) | |
download | ice-e603bacb014c8d03b64a601aee354d8dff25cca0.tar.bz2 ice-e603bacb014c8d03b64a601aee354d8dff25cca0.tar.xz ice-e603bacb014c8d03b64a601aee354d8dff25cca0.zip |
Merge branch 'master' of ssh://cvs.zeroc.com/home/git/ice
Diffstat (limited to 'cpp/src/IceGrid/ServerI.cpp')
-rw-r--r-- | cpp/src/IceGrid/ServerI.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/cpp/src/IceGrid/ServerI.cpp b/cpp/src/IceGrid/ServerI.cpp index 27fd7396399..2535bfc7abc 100644 --- a/cpp/src/IceGrid/ServerI.cpp +++ b/cpp/src/IceGrid/ServerI.cpp @@ -1153,7 +1153,13 @@ ServerI::adapterDeactivated(const string& id) ServerCommandPtr command; { Lock sync(*this); - if(_state == Active && _serverLifetimeAdapters.find(id) != _serverLifetimeAdapters.end()) + while(_state == ServerI::Activating) + { + wait(); // Wait for activate() to set the state to WaitForActivation + } + + if((_state == Active || _state == WaitForActivation) && + _serverLifetimeAdapters.find(id) != _serverLifetimeAdapters.end()) { setStateNoSync(Deactivating); } @@ -1440,12 +1446,13 @@ ServerI::deactivate() Ice::ProcessPrx process; { Lock sync(*this); - assert(_desc); if(_state != Deactivating && _state != DeactivatingWaitForProcess) { return; } + assert(_desc); + // // If a process object is supposed to be registered and it's // not set yet, we wait for the server to set this process |