aboutsummaryrefslogtreecommitdiff
path: root/third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc')
-rw-r--r--third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc24
1 files changed, 24 insertions, 0 deletions
diff --git a/third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc b/third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc
new file mode 100644
index 0000000000..42072000ae
--- /dev/null
+++ b/third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc
@@ -0,0 +1,24 @@
+#include "absl/time/clock.h"
+
+#include <sys/time.h>
+#include <ctime>
+#include <cstdint>
+
+#include "absl/base/internal/raw_logging.h"
+
+namespace absl {
+ABSL_NAMESPACE_BEGIN
+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
+ABSL_NAMESPACE_END
+} // namespace absl