diff options
Diffstat (limited to 'absl/time/internal/get_current_time_posix.inc')
-rw-r--r-- | absl/time/internal/get_current_time_posix.inc | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/absl/time/internal/get_current_time_posix.inc b/absl/time/internal/get_current_time_posix.inc new file mode 100644 index 000000000000..65474ca6da1e --- /dev/null +++ b/absl/time/internal/get_current_time_posix.inc @@ -0,0 +1,22 @@ +#include "absl/time/clock.h" + +#include <sys/time.h> +#include <ctime> +#include <cstdint> + +#include "absl/base/internal/raw_logging.h" + +namespace absl { +namespace time_internal { + +static int64_t GetCurrentTimeNanosFromSystem() { + const int64_t kNanosPerSecond = 1000 * 1000 * 1000; + struct timespec ts; + ABSL_RAW_CHECK(clock_gettime(CLOCK_REALTIME, &ts) == 0, + "Failed to read real-time clock."); + return (int64_t{ts.tv_sec} * kNanosPerSecond + + int64_t{ts.tv_nsec}); +} + +} // namespace time_internal +} // namespace absl |