You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							24 lines
						
					
					
						
							602 B
						
					
					
				
			
		
		
	
	
							24 lines
						
					
					
						
							602 B
						
					
					
				# distutils: language = c++
 | 
						|
# cython: language_level = 3
 | 
						|
from posix.time cimport clock_gettime, timespec, CLOCK_MONOTONIC_RAW, clockid_t
 | 
						|
 | 
						|
IF UNAME_SYSNAME == "Darwin":
 | 
						|
  # Darwin doesn't have a CLOCK_BOOTTIME
 | 
						|
  CLOCK_BOOTTIME = CLOCK_MONOTONIC_RAW
 | 
						|
ELSE:
 | 
						|
  from posix.time cimport CLOCK_BOOTTIME
 | 
						|
 | 
						|
cdef double readclock(clockid_t clock_id):
 | 
						|
  cdef timespec ts
 | 
						|
  cdef double current
 | 
						|
 | 
						|
  clock_gettime(clock_id, &ts)
 | 
						|
  current = ts.tv_sec + (ts.tv_nsec / 1000000000.)
 | 
						|
  return current
 | 
						|
 | 
						|
def monotonic_time():
 | 
						|
  return readclock(CLOCK_MONOTONIC_RAW)
 | 
						|
 | 
						|
def sec_since_boot():
 | 
						|
  return readclock(CLOCK_BOOTTIME)
 | 
						|
 | 
						|
 |