From 05227a0e76f9ae69fb3c1c4d5b912049535bb215 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Mon, 24 May 2010 22:57:18 -0500 Subject: [PATCH] - Put back the good version of restart-alarm - Don't sleep if the alarm is stopped before it starts - Right before I committed, I changed the code. oops. --- basis/alarms/alarms.factor | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/basis/alarms/alarms.factor b/basis/alarms/alarms.factor index 866a5573bf..92035a19c8 100644 --- a/basis/alarms/alarms.factor +++ b/basis/alarms/alarms.factor @@ -62,8 +62,12 @@ DEFER: call-alarm-loop ] if ; : sleep-delay ( alarm -- ) - nano-count >>start-nanos - delay-nanos>> [ sleep ] when* ; + dup stop-alarm? [ + drop + ] [ + nano-count >>start-nanos + delay-nanos>> [ sleep ] when* + ] if ; : alarm-loop ( alarm -- ) [ sleep-delay ] @@ -91,7 +95,12 @@ PRIVATE> ] if ; : restart-alarm ( alarm -- ) - t >>restart? [ stop-alarm ] [ start-alarm ] bi ; + t >>restart? + dup quotation-running?>> [ + drop + ] [ + dup thread>> [ nip interrupt ] [ start-alarm ] if* + ] if ;