summaryrefslogtreecommitdiff
path: root/cpp/src/IcePack/IcePackNode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IcePack/IcePackNode.cpp')
-rw-r--r--cpp/src/IcePack/IcePackNode.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/cpp/src/IcePack/IcePackNode.cpp b/cpp/src/IcePack/IcePackNode.cpp
index 90d4ac25bd9..740ab9888e2 100644
--- a/cpp/src/IcePack/IcePackNode.cpp
+++ b/cpp/src/IcePack/IcePackNode.cpp
@@ -312,11 +312,15 @@ run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator, const Free
activator->waitForShutdown();
ignoreInterrupt();
- waitQueue->destroy();
-
activator->destroy();
//
+ // The wait queue must be destroyed after the activator and before
+ // the communicator is shutdown.
+ //
+ waitQueue->destroy();
+
+ //
// We can now safelly shutdown the communicator.
//
communicator->shutdown();