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