summaryrefslogtreecommitdiff
path: root/cpp/src/IcePack/ServerI.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2004-02-20 21:32:15 +0000
committerBenoit Foucher <benoit@zeroc.com>2004-02-20 21:32:15 +0000
commit69a05e28e0702e5fd96ff012c64dcf72847818fa (patch)
treed560b8285964520c820ca29b2dd1f7600d5ea725 /cpp/src/IcePack/ServerI.cpp
parentmore ami (diff)
downloadice-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.cpp9
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)