55 if ((_state.load(std::memory_order_relaxed) & kValue) == 0 &&
56 (_state.fetch_or(kValue, std::memory_order_acq_rel) & kValue) == 0) {
57 std::move(_p).Set(Trait::GetValue(std::forward<R>(
result)));
62 if (_state.load(std::memory_order_relaxed) == kEmpty &&
63 (_state.fetch_or(kError, std::memory_order_acq_rel) & kError) == 0) {