unix.time: faster "0 make-timeval".

db4
John Benediktsson 2012-08-01 14:31:18 -07:00
parent 1a3e8a2994
commit c1d680eabc
2 changed files with 16 additions and 8 deletions

View File

@ -0,0 +1,10 @@
USING: classes.struct tools.test unix.time ;
IN: unix.time
{ S{ timeval f 0 0 } } [ 0 make-timeval ] unit-test
{ S{ timeval f 1 234567 } } [ 1,234,567 make-timeval ] unit-test
{ S{ timespec f 0 0 } } [ 0 make-timespec ] unit-test
{ S{ timespec f 1 234567890 } } [ 1,234,567,890 make-timespec ] unit-test

View File

@ -13,16 +13,14 @@ STRUCT: timespec
{ nsec long } ;
: make-timeval ( us -- timeval )
1000000 /mod
timeval <struct>
swap >>usec
swap >>sec ;
[ timeval <struct> ] dip [
1000000 /mod [ >>sec ] [ >>usec ] bi*
] unless-zero ;
: make-timespec ( nanos -- timespec )
1000000000 /mod
timespec <struct>
swap >>nsec
swap >>sec ;
[ timespec <struct> ] dip [
1000000000 /mod [ >>sec ] [ >>nsec ] bi*
] unless-zero ;
STRUCT: timezone
{ tz_minuteswest int }