#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 |