diff --git a/extra/alarms/alarms-tests.factor b/extra/alarms/alarms-tests.factor index 1af851c9c6..564f22ec95 100755 --- a/extra/alarms/alarms-tests.factor +++ b/extra/alarms/alarms-tests.factor @@ -15,3 +15,5 @@ concurrency.count-downs ; [ resume ] curry instant later drop ] "test" suspend drop ] unit-test + +\ alarm-thread-loop must-infer diff --git a/extra/alarms/alarms.factor b/extra/alarms/alarms.factor index 55a66c5231..adf79c84c9 100755 --- a/extra/alarms/alarms.factor +++ b/extra/alarms/alarms.factor @@ -38,7 +38,7 @@ SYMBOL: alarm-thread : call-alarm ( alarm -- ) dup alarm-entry box> drop - dup alarm-quot try + dup alarm-quot "Alarm execution" spawn drop dup alarm-interval [ reschedule-alarm ] [ drop ] if ; : (trigger-alarms) ( alarms now -- ) @@ -62,8 +62,7 @@ SYMBOL: alarm-thread : alarm-thread-loop ( -- ) alarms get-global dup next-alarm sleep-until - dup trigger-alarms - alarm-thread-loop ; + trigger-alarms ; : cancel-alarms ( alarms -- ) [ @@ -72,7 +71,7 @@ SYMBOL: alarm-thread : init-alarms ( -- ) alarms global [ cancel-alarms <min-heap> ] change-at - [ alarm-thread-loop ] "Alarms" spawn + [ alarm-thread-loop t ] "Alarms" spawn-server alarm-thread set-global ; [ init-alarms ] "alarms" add-init-hook diff --git a/extra/ui/ui.factor b/extra/ui/ui.factor index 477fffe6af..6286297f68 100755 --- a/extra/ui/ui.factor +++ b/extra/ui/ui.factor @@ -148,7 +148,7 @@ SYMBOL: ui-thread \ ui-running get-global ; : update-ui-loop ( -- ) - ui-running? ui-thread get-global self eq? [ + ui-running? ui-thread get-global self eq? and [ ui-notify-flag get lower-flag [ update-ui ] ui-try update-ui-loop