diff options
author | Matthew Newhook <matthew@zeroc.com> | 2006-11-20 10:11:20 +0000 |
---|---|---|
committer | Matthew Newhook <matthew@zeroc.com> | 2006-11-20 10:11:20 +0000 |
commit | 6d6bc7cfaa66f236605fbd66831d43eac264049d (patch) | |
tree | e74b3657a445c1beda76b76a7ebed4ba7ad03720 /cpp/src/IceStorm/SubscriberPool.cpp | |
parent | break cycle on shutdown from the subscriber pool. (diff) | |
download | ice-6d6bc7cfaa66f236605fbd66831d43eac264049d.tar.bz2 ice-6d6bc7cfaa66f236605fbd66831d43eac264049d.tar.xz ice-6d6bc7cfaa66f236605fbd66831d43eac264049d.zip |
break cycle on shutdown from the subscriber pool.
Diffstat (limited to 'cpp/src/IceStorm/SubscriberPool.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. |