- std::call_once(flag.std_once_flag_,
- std::forward<Callable>(f),
- std::forward<Args>(args)...);
+ std::lock_guard<folly::SharedMutex> lg(flag.mutex_);
+ if (flag.called_) {
+ return;
+ }
+
+ std::forward<Callable>(f)(std::forward<Args>(args)...);
+