implement monotonic clock on unix platforms
parent
0af1b3a7d9
commit
6f38690050
|
@ -1,7 +1,12 @@
|
|||
! Copyright (C) 2009 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: system ;
|
||||
USING: combinators system vocabs.loader ;
|
||||
IN: monotonic-clock
|
||||
|
||||
HOOK: monotonic-count os ( -- n )
|
||||
|
||||
{
|
||||
{ [ os unix? ] [ "monotonic-clock.unix" ] }
|
||||
{ [ os windows? ] [ "monotonic-clock.windows" ] }
|
||||
{ [ os macosx? ] [ "monotonic-clock.unix.macosx" ] }
|
||||
} cond require
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
! Copyright (C) 2009 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: ;
|
||||
IN: monotonic-clock.unix.linux
|
|
@ -1 +0,0 @@
|
|||
unportable
|
|
@ -0,0 +1,22 @@
|
|||
! Copyright (C) 2009 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: alien.c-types alien.syntax calendar.unix classes.struct
|
||||
kernel monotonic-clock system unix unix.time unix.types ;
|
||||
IN: monotonic-clock.unix
|
||||
|
||||
LIBRARY: librt
|
||||
|
||||
FUNCTION: int clock_settime ( clockid_t clock_id, timespec* tp ) ;
|
||||
FUNCTION: int clock_gettime ( clockid_t clock_id, timespec* tp ) ;
|
||||
FUNCTION: int clock_getres ( clockid_t clock_id, timespec* res ) ;
|
||||
|
||||
CONSTANT: CLOCK_REALTIME 0
|
||||
CONSTANT: CLOCK_MONOTONIC 1
|
||||
CONSTANT: CLOCK_PROCESS_CPUTIME_ID 2
|
||||
CONSTANT: CLOCK_THREAD_CPUTIME_ID 3
|
||||
|
||||
CONSTANT: TIMER_ABSTIME 1
|
||||
|
||||
M: unix monotonic-count
|
||||
CLOCK_MONOTONIC timespec <struct> [ clock_gettime io-error ] keep
|
||||
timespec>nanoseconds ;
|
Loading…
Reference in New Issue