[Wisp-cvs] wisp/src/builtin sys.wisp,1.108,1.109
Status: Alpha
Brought to you by:
digg
From: <di...@us...> - 2002-09-07 21:51:52
|
Update of /cvsroot/wisp/wisp/src/builtin In directory usw-pr-cvs1:/tmp/cvs-serv3540/src/builtin Modified Files: sys.wisp Log Message: Dropped |sys:raw:nanosleep|. Index: sys.wisp =================================================================== RCS file: /cvsroot/wisp/wisp/src/builtin/sys.wisp,v retrieving revision 1.108 retrieving revision 1.109 diff -u -d -r1.108 -r1.109 --- sys.wisp 7 Sep 2002 21:51:14 -0000 1.108 +++ sys.wisp 7 Sep 2002 21:51:50 -0000 1.109 @@ -146,24 +146,20 @@ (signal-system-error res `(sys:write ,fd N/A ,delta ,amount) #t) res)))) -(local (sys:nanosleep a-req) - (my req (cond - ((cons? a-req) - (cons (decsi (car a-req)) - (decsi (cdr a-req)))) - (else - (raise 'cons? a-req))) - (my rem (cons '() '()) - (my res (encsi ((asm NN_sys_raw_nanosleep) req rem)) - (cond - ((zero? res) - '#t) - ((= res -4) ; EINTR - (set! (car rem) (encsi (car rem))) - (set! (cdr rem) (encsi (cdr rem))) - rem) - (else - (signal-system-error res `(sys:nanosleep ,a-req)))))))) +(local (sys:nanosleep req) + (my res ((asm NN_sys_ns_nanosleep) + (case req + (cons? req) + (real? (cons (floor req) + (round (* (- req (floor req)) + 1000 1000 1000)))) + (else (raise 'real? req)))) + (cond + ((zero? res) (begin)) + ((cons? res) (if (cons? req) + res + (+ (car res) (/ (cdr res) 1000 1000 1000)))) + (else (signal-system-error res `(sys:nanosleep ,req)))))) (define (sys:open name flags mode) (my fd (encsi ((asm NN_sys_raw_open) (%ws->0t name) |