23 #include "absl/base/internal/cycleclock.h"
28 #include "absl/base/attributes.h"
29 #include "absl/base/config.h"
30 #include "absl/base/internal/unscaledcycleclock.h"
34 namespace base_internal {
36 #if ABSL_USE_UNSCALED_CYCLECLOCK
38 #ifdef ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
39 constexpr
int32_t CycleClock::kShift;
40 constexpr
double CycleClock::kFrequencyScale;
44 CycleClock::cycle_clock_source_{
nullptr};
48 CycleClock::cycle_clock_source_.store(source, std::memory_order_release);
53 auto fn = LoadCycleClockSource();
57 return fn() >> kShift;
64 return std::chrono::duration_cast<std::chrono::nanoseconds>(