Fix utils::SkipList iterator bug

Reviewers: mtomic

Reviewed By: mtomic

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D2119
This commit is contained in:
Matej Ferencevic 2019-06-10 14:47:51 +02:00
parent 9cc2224ac3
commit 8194fbd6f7

View File

@ -479,9 +479,10 @@ class SkipList final {
Iterator &operator++() {
while (true) {
TNode *next = node_->nexts[0].load(std::memory_order_relaxed);
if (next == nullptr || !next->marked.load(std::memory_order_relaxed)) {
node_ = next;
node_ = node_->nexts[0].load(std::memory_order_relaxed);
if (node_ != nullptr && node_->marked.load(std::memory_order_relaxed)) {
continue;
} else {
return *this;
}
}