#include <algorithm>
#include <atomic>
#include <cstdint>
#include <type_traits>
#include <utility>
#include "absl/base/internal/invoke.h"
#include "absl/base/internal/low_level_scheduling.h"
#include "absl/base/internal/raw_logging.h"
#include "absl/base/internal/scheduling_mode.h"
#include "absl/base/internal/spinlock_wait.h"
#include "absl/base/macros.h"
#include "absl/base/optimization.h"
#include "absl/base/port.h"
Go to the source code of this file.
Classes | |
class | absl::once_flag |
class | absl::base_internal::SchedulingHelper |
Namespaces | |
namespace | absl |
namespace | absl::base_internal |
Enumerations | |
enum | { absl::base_internal::kOnceInit = 0, absl::base_internal::kOnceRunning = 0x65C2937B, absl::base_internal::kOnceWaiter = 0x05A308D2, absl::base_internal::kOnceDone = 221 } |
Functions | |
template<typename Callable , typename... Args> | |
void | absl::call_once (absl::once_flag &flag, Callable &&fn, Args &&...args) |
template<typename Callable , typename... Args> | |
void | absl::base_internal::CallOnceImpl (std::atomic< uint32_t > *control, base_internal::SchedulingMode scheduling_mode, Callable &&fn, Args &&...args) |
std::atomic< uint32_t > * | absl::base_internal::ControlWord (absl::once_flag *flag) |
template<typename Callable , typename... Args> | |
void | absl::base_internal::LowLevelCallOnce (absl::once_flag *flag, Callable &&fn, Args &&...args) |