diff options
-rw-r--r-- | src/common.cpp | 16 | ||||
-rw-r--r-- | src/common.h | 3 |
2 files changed, 6 insertions, 13 deletions
diff --git a/src/common.cpp b/src/common.cpp index 146f0780..cc601460 100644 --- a/src/common.cpp +++ b/src/common.cpp @@ -1648,19 +1648,13 @@ void format_size_safe(char buff[128], unsigned long long sz) { } } +/// Return the number of seconds from the UNIX epoch, with subsecond precision. This function uses +/// the gettimeofday function and will have the same precision as that function. double timef() { struct timeval tv; - int time_res = gettimeofday(&tv, 0); - - if (time_res) { - // Fixme: What on earth is the correct parameter value for NaN? The man pages and the - // standard helpfully state that this parameter is implementation defined. Gcc gives a - // warning if a null pointer is used. But not even all mighty Google gives a hint to what - // value should actually be returned. - return nan(""); - } - - return (double)tv.tv_sec + 0.000001 * tv.tv_usec; + VOMIT_ON_FAILURE(gettimeofday(&tv, 0)); + // return (double)tv.tv_sec + 0.000001 * tv.tv_usec; + return (double)tv.tv_sec + 1e-6 * tv.tv_usec; } void exit_without_destructors(int code) { _exit(code); } diff --git a/src/common.h b/src/common.h index 85b2dcc6..3c2416f6 100644 --- a/src/common.h +++ b/src/common.h @@ -744,8 +744,7 @@ int create_directory(const wcstring &d); void bugreport(); /// Return the number of seconds from the UNIX epoch, with subsecond precision. This function uses -/// the gettimeofday function, and will have the same precision as that function. If an error -/// occurs, NAN is returned. +/// the gettimeofday function and will have the same precision as that function. double timef(); /// Call the following function early in main to set the main thread. This is our replacement for |