diff options
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/src/IceStorm/SubscriberPool.cpp | 7 |
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. |