2016-07-10 16:33:16 +00:00
|
|
|
#lang syndicate/actor
|
2016-02-05 23:03:40 +00:00
|
|
|
|
2016-07-12 19:05:56 +00:00
|
|
|
(require/activate syndicate/drivers/timer)
|
2016-02-05 23:03:40 +00:00
|
|
|
|
|
|
|
(define (sleep sec)
|
|
|
|
(define timer-id (gensym 'sleep))
|
|
|
|
(until (message (timer-expired timer-id _))
|
2016-07-09 20:18:30 +00:00
|
|
|
(on-start (send! (set-timer timer-id (* sec 1000.0) 'relative)))))
|
2016-02-05 23:03:40 +00:00
|
|
|
|
|
|
|
(define (chain-step n)
|
|
|
|
(printf "chain-step ~v\n" n)
|
2016-08-24 16:35:38 +00:00
|
|
|
(actor* (sleep 1)
|
|
|
|
(if (< n 5)
|
|
|
|
(chain-step (+ n 1))
|
|
|
|
(printf "done.\n"))))
|
2016-02-05 23:03:40 +00:00
|
|
|
|
|
|
|
(chain-step 0)
|