Commit 914047bd authored by Max Katsev's avatar Max Katsev Committed by Facebook GitHub Bot

Add atomic_ref::exchange

Reviewed By: ot

Differential Revision: D33857528

fbshipit-source-id: 265457c5771684d6830a16a3b7390e9bd99b277d
parent 2b99b21b
......@@ -43,6 +43,11 @@ struct atomic_ref_base {
return atomic().load(order);
}
T exchange(T desired, std::memory_order order = std::memory_order_seq_cst)
const noexcept {
return atomic().exchange(desired, order);
}
bool compare_exchange_weak(
T& expected,
T desired,
......
......@@ -32,7 +32,8 @@ TEST_F(AtomicRefTest, integer) {
auto ref = folly::make_atomic_ref(value);
EXPECT_EQ(17, ref.load(std::memory_order_relaxed));
ref.store(55, std::memory_order_relaxed);
EXPECT_EQ(55, ref.load(std::memory_order_relaxed));
EXPECT_EQ(55, ref.exchange(42, std::memory_order_relaxed));
EXPECT_EQ(42, ref.load(std::memory_order_relaxed));
}
{
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment