From: Yanbo Xu Date: Sat, 16 Dec 2017 01:10:05 +0000 (-0800) Subject: Revert D6579707: [folly/ConcurrentHashMap] Fix erase in Iterate X-Git-Tag: v2017.12.18.00~6 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=b5750c50fc8348d61cd43d4fda623f6e64ddadb0;p=folly.git Revert D6579707: [folly/ConcurrentHashMap] Fix erase in Iterate Summary: This reverts commit a45f47a53e106d22daa9cf57be6c40c4f6a430d9 bypass-lint Differential Revision: D6579707 fbshipit-source-id: 6f6c35de5e05f8cf37491471e1ae1272290fe61b --- diff --git a/folly/concurrency/ConcurrentHashMap.h b/folly/concurrency/ConcurrentHashMap.h index a2cf218a..b4d2fc3a 100644 --- a/folly/concurrency/ConcurrentHashMap.h +++ b/folly/concurrency/ConcurrentHashMap.h @@ -421,9 +421,7 @@ class ConcurrentHashMap { } ConstIterator(const ConcurrentHashMap* parent, uint64_t segment) - : it_(parent->ensureSegment(segment)->cbegin()), - segment_(segment), - parent_(parent) {} + : segment_(segment), parent_(parent) {} private: // cbegin iterator diff --git a/folly/concurrency/test/ConcurrentHashMapTest.cpp b/folly/concurrency/test/ConcurrentHashMapTest.cpp index c16985cd..b1b18e42 100644 --- a/folly/concurrency/test/ConcurrentHashMapTest.cpp +++ b/folly/concurrency/test/ConcurrentHashMapTest.cpp @@ -257,24 +257,6 @@ TEST(ConcurrentHashMap, EraseTest) { foomap.erase(f1); } -TEST(ConcurrentHashMap, EraseInIterateTest) { - ConcurrentHashMap foomap(3); - for (uint64_t k = 0; k < 10; ++k) { - foomap.insert(k, k); - } - for (auto it = foomap.cbegin(); it != foomap.cend();) { - if (it->second > 3) { - it = foomap.erase(it); - } else { - ++it; - } - } - EXPECT_EQ(4, foomap.size()); - for (auto it = foomap.cbegin(); it != foomap.cend(); ++it) { - EXPECT_GE(3, it->second); - } -} - // TODO: hazptrs must support DeterministicSchedule #define Atom std::atomic // DeterministicAtomic