22 lines
		
	
	
	
		
			549 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
	
		
			549 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #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
 |