Make os.clock use clock_gettime on FreeBSD (#1364)

This commit is contained in:
Ketasaja 2024-08-14 15:31:59 +00:00 committed by GitHub
parent 9dc299ecaf
commit 1788e237fc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 4 additions and 4 deletions

View file

@ -40,7 +40,7 @@ static double getClockPeriod()
mach_timebase_info_data_t result = {}; mach_timebase_info_data_t result = {};
mach_timebase_info(&result); mach_timebase_info(&result);
return double(result.numer) / double(result.denom) * 1e-9; return double(result.numer) / double(result.denom) * 1e-9;
#elif defined(__linux__) #elif defined(__linux__) || defined(__FreeBSD__)
return 1e-9; return 1e-9;
#else #else
return 1.0 / double(CLOCKS_PER_SEC); return 1.0 / double(CLOCKS_PER_SEC);
@ -55,7 +55,7 @@ static double getClockTimestamp()
return double(result.QuadPart); return double(result.QuadPart);
#elif defined(__APPLE__) #elif defined(__APPLE__)
return double(mach_absolute_time()); return double(mach_absolute_time());
#elif defined(__linux__) #elif defined(__linux__) || defined(__FreeBSD__)
timespec now; timespec now;
clock_gettime(CLOCK_MONOTONIC, &now); clock_gettime(CLOCK_MONOTONIC, &now);
return now.tv_sec * 1e9 + now.tv_nsec; return now.tv_sec * 1e9 + now.tv_nsec;

View file

@ -30,7 +30,7 @@ static double clock_period()
mach_timebase_info_data_t result = {}; mach_timebase_info_data_t result = {};
mach_timebase_info(&result); mach_timebase_info(&result);
return double(result.numer) / double(result.denom) * 1e-9; return double(result.numer) / double(result.denom) * 1e-9;
#elif defined(__linux__) #elif defined(__linux__) || defined(__FreeBSD__)
return 1e-9; return 1e-9;
#else #else
return 1.0 / double(CLOCKS_PER_SEC); return 1.0 / double(CLOCKS_PER_SEC);
@ -45,7 +45,7 @@ static double clock_timestamp()
return double(result.QuadPart); return double(result.QuadPart);
#elif defined(__APPLE__) #elif defined(__APPLE__)
return double(mach_absolute_time()); return double(mach_absolute_time());
#elif defined(__linux__) #elif defined(__linux__) || defined(__FreeBSD__)
timespec now; timespec now;
clock_gettime(CLOCK_MONOTONIC, &now); clock_gettime(CLOCK_MONOTONIC, &now);
return now.tv_sec * 1e9 + now.tv_nsec; return now.tv_sec * 1e9 + now.tv_nsec;