src/os/bsd/vm/os_bsd.hpp

Print this page
rev 6229 : 8040140: System.nanoTime() is slow and non-monotonic on OS X
Reviewed-by: sspitsyn, shade, dholmes, acorn

*** 56,66 **** --- 56,72 ---- static void check_signal_handler(int sig); // For signal flags diagnostics static int sigflags[MAXSIGNUM]; + #ifdef __APPLE__ + // mach_absolute_time + static mach_timebase_info_data_t _timebase_info; + static volatile uint64_t _max_abstime; + #else static int (*_clock_gettime)(clockid_t, struct timespec *); + #endif static GrowableArray<int>* _cpu_to_node; protected:
*** 133,147 **** // Real-time clock functions static void clock_init(void); static inline bool supports_monotonic_clock() { return _clock_gettime != NULL; ! } ! ! static int clock_gettime(clockid_t clock_id, struct timespec *tp) { ! return _clock_gettime ? _clock_gettime(clock_id, tp) : -1; } // Stack repair handling // none present --- 139,153 ---- // Real-time clock functions static void clock_init(void); static inline bool supports_monotonic_clock() { + #ifdef __APPLE__ + return true; + #else return _clock_gettime != NULL; ! #endif } // Stack repair handling // none present