(multiple-value-bind (quot rem) (truncate (numerator seconds)
(denominator seconds))
(values quot
- (truncate (* rem (/ 1000000000 (denominator seconds)))))))
+ (* rem (truncate 1000000000 (denominator seconds))))))
(t
(multiple-value-bind (sec frac)
(truncate seconds)
(sleep 2))))
;;; SLEEP should not cons
-(with-test (:name (sleep :non-consing) :fails-on '(or (not :x86-64) :win32))
- (ctu:assert-no-consing (sleep 0.00001)))
-
-;;; SLEEP should work with large integers as well -- no timers
-;;; on win32, so don't test there.
-(with-test (:name (sleep pretty-much-forever) :skipped-on :win32)
+(with-test (:name (sleep :non-consing) :fails-on :win32)
+ (ctu:assert-no-consing (sleep 0.00001s0))
+ (locally (declare (notinline sleep))
+ (ctu:assert-no-consing (sleep 0.00001s0))
+ (ctu:assert-no-consing (sleep 0.00001d0))
+ (ctu:assert-no-consing (sleep 1/100000000000000))))
+
+;;; SLEEP should work with large integers as well
+(with-test (:name (sleep pretty-much-forever))
(assert (eq :timeout
(handler-case
(sb-ext:with-timeout 1