File tree Expand file tree Collapse file tree 1 file changed +6
-4
lines changed
Expand file tree Collapse file tree 1 file changed +6
-4
lines changed Original file line number Diff line number Diff line change @@ -33,10 +33,12 @@ template <typename TT, bool IsVolatile> struct TestAtomics {
3333 for (int order = vsync::memory_order_relaxed;
3434 order <= vsync::memory_order_seq_cst; order++) {
3535 for (TT v : vals) {
36- mirror.store (v, static_cast <std::memory_order>(order));
37- subject.store (v, static_cast <vsync::memory_order>(order));
38- assert (mirror.load (static_cast <std::memory_order>(order)) ==
39- subject.load (static_cast <vsync::memory_order>(order)));
36+ auto w_order = order == vsync::memory_order_acquire ? vsync::memory_order_relaxed : order;
37+ auto r_order = order == vsync::memory_order_release ? vsync::memory_order_relaxed : order;
38+ mirror.store (v, static_cast <std::memory_order>(w_order));
39+ subject.store (v, static_cast <vsync::memory_order>(w_order));
40+ assert (mirror.load (static_cast <std::memory_order>(r_order)) ==
41+ subject.load (static_cast <vsync::memory_order>(r_order)));
4042 }
4143 }
4244 }
You can’t perform that action at this time.
0 commit comments