Skip to content

Commit 73ce6ce

Browse files
authored
Update list_teardown_pop.cpp
1 parent 8c890ba commit 73ce6ce

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

slides/atomic/list_teardown_pop.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -61,19 +61,19 @@ struct MyList {
6161
Node *new_node = new Node;
6262
new_node->value = value;
6363

64-
Node *old_head = head.load(std::memory_order_relaxed);
64+
Node *old_head = head.load(std::memory_order_consume);
6565
do
6666
new_node->next = old_head;
6767
// store barrier
68-
while (!head.compare_exchange_weak(old_head, new_node, std::memory_order_release, std::memory_order_relaxed));
68+
while (!head.compare_exchange_weak(old_head, new_node, std::memory_order_release, std::memory_order_consume));
6969
}
7070

7171
int pop_back() {
72-
Node *old_head = head.load(std::memory_order_relaxed);
72+
Node *old_head = head.load(std::memory_order_consume);
7373
do {
7474
if (old_head == nullptr)
7575
return -1;
76-
} while (!head.compare_exchange_weak(old_head, old_head->next, std::memory_order_acquire, std::memory_order_relaxed));
76+
} while (!head.compare_exchange_weak(old_head, old_head->next, std::memory_order_acquire, std::memory_order_consume));
7777
// load barrier
7878
int value = old_head->value;
7979
delete old_head;

0 commit comments

Comments
 (0)