Clean up alarms
parent
b44b334a02
commit
46ab3bdd18
|
@ -14,8 +14,7 @@ HELP: later
|
||||||
|
|
||||||
HELP: cancel-alarm
|
HELP: cancel-alarm
|
||||||
{ $values { "alarm" alarm } }
|
{ $values { "alarm" alarm } }
|
||||||
{ $description "Cancels an alarm." }
|
{ $description "Cancels an alarm. Does nothing if the alarm is not active." } ;
|
||||||
{ $errors "Throws an error if the alarm is not active." } ;
|
|
||||||
|
|
||||||
ARTICLE: "alarms" "Alarms"
|
ARTICLE: "alarms" "Alarms"
|
||||||
"Alarms provide a lightweight way to schedule one-time and recurring tasks without spawning a new thread."
|
"Alarms provide a lightweight way to schedule one-time and recurring tasks without spawning a new thread."
|
||||||
|
|
|
@ -56,15 +56,13 @@ SYMBOL: alarm-thread
|
||||||
: trigger-alarms ( alarms -- )
|
: trigger-alarms ( alarms -- )
|
||||||
now (trigger-alarms) ;
|
now (trigger-alarms) ;
|
||||||
|
|
||||||
: next-alarm ( alarms -- ms )
|
: next-alarm ( alarms -- timestamp/f )
|
||||||
dup heap-empty?
|
dup heap-empty?
|
||||||
[ drop f ]
|
[ drop f ] [ heap-peek drop alarm-time ] if ;
|
||||||
[ heap-peek drop alarm-time now timestamp- 1000 * 0 max ]
|
|
||||||
if ;
|
|
||||||
|
|
||||||
: alarm-thread-loop ( -- )
|
: alarm-thread-loop ( -- )
|
||||||
alarms get-global
|
alarms get-global
|
||||||
dup next-alarm nap drop
|
dup next-alarm nap-until drop
|
||||||
dup trigger-alarms
|
dup trigger-alarms
|
||||||
alarm-thread-loop ;
|
alarm-thread-loop ;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue