Merge pull request #1124 from piru/master
Use CLOCK_MONOTONIC_RAW when available
This commit is contained in:
+11
-1
@@ -48,6 +48,16 @@
|
||||
#include <stdio.h>
|
||||
#endif
|
||||
|
||||
// On Apple systems CLOCK_MONOTONIC is unfortunately able to go
|
||||
// backwards in time. This breaks mosh when system is returning from
|
||||
// suspend as described in ticket #1014. To avoid this issue prefer
|
||||
// CLOCK_MONOTONIC_RAW on Apple systems when available.
|
||||
#if defined(__APPLE__) && defined(CLOCK_MONOTONIC_RAW)
|
||||
#define CLOCKTYPE CLOCK_MONOTONIC_RAW
|
||||
#else
|
||||
#define CLOCKTYPE CLOCK_MONOTONIC
|
||||
#endif
|
||||
|
||||
static uint64_t millis_cache = -1;
|
||||
|
||||
uint64_t frozen_timestamp( void )
|
||||
@@ -73,7 +83,7 @@ void freeze_timestamp( void )
|
||||
// Check for presence, for OS X SDK >= 10.12 and runtime < 10.12
|
||||
&clock_gettime != NULL &&
|
||||
#endif
|
||||
clock_gettime( CLOCK_MONOTONIC, &tp ) == 0 ) {
|
||||
clock_gettime( CLOCKTYPE, &tp ) == 0 ) {
|
||||
uint64_t millis = tp.tv_nsec / 1000000;
|
||||
millis += uint64_t( tp.tv_sec ) * 1000;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user