summaryrefslogtreecommitdiff
path: root/cpp/src/IcePack/IcePackNode.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2002-12-13 23:14:19 +0000
committerBenoit Foucher <benoit@zeroc.com>2002-12-13 23:14:19 +0000
commit88068f53495c38104849bee7ae62a6a8bb88c211 (patch)
tree40f0939145115b3f0702521511aa6ff673f4e2ca /cpp/src/IcePack/IcePackNode.cpp
parentRemoved more spurious whitespace: (diff)
downloadice-88068f53495c38104849bee7ae62a6a8bb88c211.tar.bz2
ice-88068f53495c38104849bee7ae62a6a8bb88c211.tar.xz
ice-88068f53495c38104849bee7ae62a6a8bb88c211.zip
Added wait queue to IcePack and use it to wait for adapter activation.
Diffstat (limited to 'cpp/src/IcePack/IcePackNode.cpp')
-rw-r--r--cpp/src/IcePack/IcePackNode.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/cpp/src/IcePack/IcePackNode.cpp b/cpp/src/IcePack/IcePackNode.cpp
index 61f67ac47c9..90d4ac25bd9 100644
--- a/cpp/src/IcePack/IcePackNode.cpp
+++ b/cpp/src/IcePack/IcePackNode.cpp
@@ -189,12 +189,18 @@ run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator, const Free
activator = new ActivatorI(traceLevels, properties);
//
+ // Create the wait queue.
+ //
+ WaitQueuePtr waitQueue = new WaitQueue();
+ waitQueue->start();
+
+ //
// Creates the server factory. The server factory creates server
// and server adapter persistent objects. It also takes care of
// installing the evictors and object factory necessary to persist
// and create these objects.
//
- ServerFactoryPtr serverFactory = new ServerFactory(adapter, traceLevels, dbEnv, activator);
+ ServerFactoryPtr serverFactory = new ServerFactory(adapter, traceLevels, dbEnv, activator, waitQueue);
//
// Create the node object and the node info. Because of circular
@@ -306,6 +312,8 @@ run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator, const Free
activator->waitForShutdown();
ignoreInterrupt();
+ waitQueue->destroy();
+
activator->destroy();
//
@@ -314,6 +322,8 @@ run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator, const Free
communicator->shutdown();
communicator->waitForShutdown();
+ activator = 0;
+
return EXIT_SUCCESS;
}