diff options
author | Benoit Foucher <benoit@zeroc.com> | 2004-02-20 21:32:15 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2004-02-20 21:32:15 +0000 |
commit | 69a05e28e0702e5fd96ff012c64dcf72847818fa (patch) | |
tree | d560b8285964520c820ca29b2dd1f7600d5ea725 /cpp/src/IcePack/ServerI.cpp | |
parent | more ami (diff) | |
download | ice-69a05e28e0702e5fd96ff012c64dcf72847818fa.tar.bz2 ice-69a05e28e0702e5fd96ff012c64dcf72847818fa.tar.xz ice-69a05e28e0702e5fd96ff012c64dcf72847818fa.zip |
Fixed IcePack node bug and IcePack hello demo, added simple demo.
Diffstat (limited to 'cpp/src/IcePack/ServerI.cpp')
-rw-r--r-- | cpp/src/IcePack/ServerI.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/cpp/src/IcePack/ServerI.cpp b/cpp/src/IcePack/ServerI.cpp index 71c90c13028..218c8d5bd88 100644 --- a/cpp/src/IcePack/ServerI.cpp +++ b/cpp/src/IcePack/ServerI.cpp @@ -242,16 +242,20 @@ void IcePack::ServerI::terminated(const Ice::Current&) { ServerState newState = Inactive; // Initialize to keep the compiler happy. - + while(true) { IceUtil::Monitor< IceUtil::Mutex>::Lock sync(*this); switch(_state) { case Inactive: - case Activating: { assert(false); } + case Activating: + { + wait(); // TODO: Timeout? + continue; + } case Active: { _state = Deactivating; @@ -286,6 +290,7 @@ IcePack::ServerI::terminated(const Ice::Current&) } assert(_state == Deactivating || _state == Destroying); + break; } if(newState != Destroyed) |