From b2c795c57ad7312e3826511fbf65bab87d01e401 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Mon, 21 Nov 2016 11:51:48 +1300 Subject: [PATCH] Sleep utility --- racket/syndicate/drivers/timestate.rkt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/racket/syndicate/drivers/timestate.rkt b/racket/syndicate/drivers/timestate.rkt index 5447503..35fe2d8 100644 --- a/racket/syndicate/drivers/timestate.rkt +++ b/racket/syndicate/drivers/timestate.rkt @@ -1,7 +1,8 @@ #lang syndicate/actor (provide (struct-out later-than) - stop-when-timeout) + stop-when-timeout + sleep) (require/activate syndicate/drivers/timer) @@ -19,3 +20,8 @@ (let ((timer-id (gensym 'timeout))) (on-start (send! (set-timer timer-id relative-msecs 'relative))) (stop-when (message (timer-expired timer-id _)) body ...))) + +(define (sleep sec) + (define timer-id (gensym 'sleep)) + (until (message (timer-expired timer-id _)) + (on-start (send! (set-timer timer-id (* sec 1000.0) 'relative)))))