From: Christopher Dykes Date: Tue, 1 Mar 2016 17:59:36 +0000 (-0800) Subject: Add timeradd and timersub to the sys/time.h portability header X-Git-Tag: deprecate-dynamic-initializer~27 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=3a152643ca8c0228102cce5de9ce60e8f974fe42;p=folly.git Add timeradd and timersub to the sys/time.h portability header Summary: I missed these in my initial diff. Reviewed By: yfeldblum Differential Revision: D2989977 fb-gh-sync-id: 0efb92286a8aed91ec1d394572cd709e5b6b37ab shipit-source-id: 0efb92286a8aed91ec1d394572cd709e5b6b37ab --- diff --git a/folly/portability/SysTime.cpp b/folly/portability/SysTime.cpp index 9b46b711..9969a171 100755 --- a/folly/portability/SysTime.cpp +++ b/folly/portability/SysTime.cpp @@ -20,7 +20,8 @@ #include #include -extern "C" int gettimeofday(timeval* tv, timezone*) { +extern "C" { +int gettimeofday(timeval* tv, timezone*) { constexpr auto posixWinFtOffset = 116444736000000000ULL; if (tv) { @@ -33,4 +34,23 @@ extern "C" int gettimeofday(timeval* tv, timezone*) { return 0; } + +void timeradd(timeval* a, timeval* b, timeval* res) { + res->tv_sec = a->tv_sec + b->tv_sec; + res->tv_usec = a->tv_usec + b->tv_usec; + if (res->tv_usec >= 1000000) { + res->tv_sec++; + res->tv_usec -= 1000000; + } +} + +void timersub(timeval* a, timeval* b, timeval* res) { + res->tv_sec = a->tv_sec - b->tv_sec; + res->tv_usec = a->tv_usec - b->tv_usec; + if (res->tv_usec < 0) { + res->tv_sec--; + res->tv_usec += 1000000; + } +} +} #endif diff --git a/folly/portability/SysTime.h b/folly/portability/SysTime.h index 56b572f2..162ff21a 100755 --- a/folly/portability/SysTime.h +++ b/folly/portability/SysTime.h @@ -26,5 +26,9 @@ struct timezone { int tz_dsttime; }; -extern "C" int gettimeofday(timeval* tv, timezone*); +extern "C" { +int gettimeofday(timeval* tv, timezone*); +void timeradd(timeval* a, timeval* b, timeval* res); +void timersub(timeval* a, timeval* b, timeval* res); +} #endif