diff options
author | Joe George <joe@zeroc.com> | 2015-09-11 14:30:00 -0400 |
---|---|---|
committer | Joe George <joe@zeroc.com> | 2015-09-11 14:30:00 -0400 |
commit | b9c2a6f6628476f11c78a7de2adc90edca1e209e (patch) | |
tree | df192d87dfbc594a7a2b52a96b5145ad3156d26f /cpp/src/IceStorm/TopicManagerI.cpp | |
parent | ICE-6645 Removed hack to keep binary compatibility in Ice 3.6.1 (diff) | |
parent | Removed ARM configuraton from WinRT testsuite solutions (diff) | |
download | ice-b9c2a6f6628476f11c78a7de2adc90edca1e209e.tar.bz2 ice-b9c2a6f6628476f11c78a7de2adc90edca1e209e.tar.xz ice-b9c2a6f6628476f11c78a7de2adc90edca1e209e.zip |
Merge remote-tracking branch 'origin/3.6'
Diffstat (limited to 'cpp/src/IceStorm/TopicManagerI.cpp')
-rw-r--r-- | cpp/src/IceStorm/TopicManagerI.cpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/cpp/src/IceStorm/TopicManagerI.cpp b/cpp/src/IceStorm/TopicManagerI.cpp index bca2b02e5a3..0de2ab58aa9 100644 --- a/cpp/src/IceStorm/TopicManagerI.cpp +++ b/cpp/src/IceStorm/TopicManagerI.cpp @@ -808,16 +808,13 @@ TopicManagerImpl::reap() // // Lock sync(*this); // - map<string, TopicImplPtr>::iterator p = _topics.begin(); - while(p != _topics.end()) + vector<string> reaped = _instance->topicReaper()->consumeReapedTopics(); + for(vector<string>::const_iterator p = reaped.begin(); p != reaped.end(); ++p) { - if(p->second->destroyed()) + map<string, TopicImplPtr>::iterator q = _topics.find(*p); + if(q != _topics.end() && q->second->destroyed()) { - _topics.erase(p++); - } - else - { - ++p; + _topics.erase(q); } } } |