summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp')
-rw-r--r--cpp/src/IceStorm/SubscriberPool.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/cpp/src/IceStorm/SubscriberPool.cpp b/cpp/src/IceStorm/SubscriberPool.cpp
index 252e75745ee..9865e0ac681 100644
--- a/cpp/src/IceStorm/SubscriberPool.cpp
+++ b/cpp/src/IceStorm/SubscriberPool.cpp
@@ -265,6 +265,12 @@ SubscriberPool::dequeue(SubscriberPtr& subscriber, bool requeue, const IceUtil::
{
Lock sync(*this);
+ if(_destroyed)
+ {
+ subscriber = 0;
+ return;
+ }
+
if(subscriber)
{
if(requeue)
@@ -431,6 +437,7 @@ SubscriberPool::destroy()
_subscriberPoolMonitor->destroy();
}
_subscribers.clear();
+ _pending.clear();
}
//
// Next join with each worker.