76 RequestState state = kNeedsUpdate;
77 if (!state_.compare_exchange_strong(state, kUpdating, std::memory_order_acq_rel)) {
80 obj_.emplace(std::forward<Args>(args)...);
81 state_.store(kReady, std::memory_order_release);
101 enum RequestState { kNone, kNeedsUpdate, kUpdating, kReady };