diff --git a/libcxx/src/chrono.cpp b/libcxx/src/chrono.cpp --- a/libcxx/src/chrono.cpp +++ b/libcxx/src/chrono.cpp @@ -114,14 +114,14 @@ #if defined(__APPLE__) -// Darwin libc versions >= 1133 provide ns precision via CLOCK_UPTIME_RAW -#if defined(_LIBCPP_USE_CLOCK_GETTIME) && defined(CLOCK_UPTIME_RAW) +// Darwin libc versions >= 1133 provide ns precision via CLOCK_MONOTONIC_RAW +#if defined(_LIBCPP_USE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC_RAW) steady_clock::time_point steady_clock::now() _NOEXCEPT { struct timespec tp; - if (0 != clock_gettime(CLOCK_UPTIME_RAW, &tp)) - __throw_system_error(errno, "clock_gettime(CLOCK_UPTIME_RAW) failed"); + if (0 != clock_gettime(CLOCK_MONOTONIC_RAW, &tp)) + __throw_system_error(errno, "clock_gettime(CLOCK_MONOTONIC_RAW) failed"); return time_point(seconds(tp.tv_sec) + nanoseconds(tp.tv_nsec)); } @@ -177,7 +177,7 @@ static FP fp = init_steady_clock(); return time_point(duration(fp())); } -#endif // defined(_LIBCPP_USE_CLOCK_GETTIME) && defined(CLOCK_UPTIME_RAW) +#endif // defined(_LIBCPP_USE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC_RAW) #elif defined(_LIBCPP_WIN32API) @@ -206,9 +206,9 @@ #elif defined(CLOCK_MONOTONIC) -// On Apple platforms only CLOCK_UPTIME_RAW or mach_absolute_time are able to -// time functions in the nanosecond range. Thus, they are the only acceptable -// implementations of steady_clock. +// On Apple platforms only CLOCK_UPTIME_RAW, CLOCK_MONOTONIC_RAW or +// mach_absolute_time are able to time functions in the nanosecond range. +// Thus, they are the only acceptable implementations of steady_clock. #ifdef __APPLE__ #error "Never use CLOCK_MONOTONIC for steady_clock::now on Apple platforms" #endif