| // This is reserved space for an absl::Mutex to guard flag data. It will be | |
| // initialized in FlagImpl::Init via placement new. | |
| // We can't use "absl::Mutex data_guard_", since this class is not literal. | |
| // We do not want to use "absl::Mutex* data_guard_", since this would require | |
| // heap allocation during initialization, which is both slows program startup | |
| // and can fail. Using reserved space + placement new allows us to avoid both | |
| // problems. | |
| alignas(absl::Mutex) mutable char data_guard_[sizeof(absl::Mutex)]; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment