From b7c43d6e04dca1bd49b23c1ffd96e39de30089f0 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Thu, 10 Jan 2019 21:41:34 -0800 Subject: [PATCH] models.delay: cache the timer, bug with restart-timer. --- basis/models/delay/delay.factor | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/basis/models/delay/delay.factor b/basis/models/delay/delay.factor index bb5dc24a5c..cb903b6150 100644 --- a/basis/models/delay/delay.factor +++ b/basis/models/delay/delay.factor @@ -10,18 +10,15 @@ TUPLE: delay < model model timeout timer ; : ( model timeout -- delay ) f delay new-model + dup '[ _ update-delay-model ] pick f >>timer swap >>timeout over >>model [ add-dependency ] keep ; -: stop-delay ( delay -- ) - timer>> [ stop-timer ] when* ; +M: delay model-changed + ! BUG: timer can't be "restart-timer" inside of its quotation? + ! nip timer>> restart-timer ; + nip timer>> [ stop-timer ] [ start-timer ] bi ; -: start-delay ( delay -- ) - [ '[ _ f >>timer update-delay-model ] ] - [ timeout>> later ] - [ timer<< ] tri ; - -M: delay model-changed nip dup stop-delay start-delay ; M: delay model-activated update-delay-model ;