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.
23 lines
574 B
23 lines
574 B
# 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)
|
|
|
|
|