18 lines
425 B
Racket
18 lines
425 B
Racket
#lang syndicate/actor
|
|
|
|
(require/activate syndicate/drivers/timer)
|
|
|
|
(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)))))
|
|
|
|
(define (chain-step n)
|
|
(printf "chain-step ~v\n" n)
|
|
(actor (sleep 1)
|
|
(if (< n 5)
|
|
(chain-step (+ n 1))
|
|
(printf "done.\n"))))
|
|
|
|
(chain-step 0)
|