get_current_time_posix.inc (589B)
1 #include "absl/time/clock.h" 2 3 #include <sys/time.h> 4 #include <ctime> 5 #include <cstdint> 6 7 #include "absl/base/internal/raw_logging.h" 8 9 namespace absl { 10 ABSL_NAMESPACE_BEGIN 11 namespace time_internal { 12 13 static int64_t GetCurrentTimeNanosFromSystem() { 14 const int64_t kNanosPerSecond = 1000 * 1000 * 1000; 15 struct timespec ts; 16 ABSL_RAW_CHECK(clock_gettime(CLOCK_REALTIME, &ts) == 0, 17 "Failed to read real-time clock."); 18 return (int64_t{ts.tv_sec} * kNanosPerSecond + 19 int64_t{ts.tv_nsec}); 20 } 21 22 } // namespace time_internal 23 ABSL_NAMESPACE_END 24 } // namespace absl