22 lines
648 B
Racket
22 lines
648 B
Racket
#lang syndicate/actor
|
|
|
|
(require/activate syndicate/drivers/timer)
|
|
|
|
(actor #:name 'main
|
|
(on (message 'trigger)
|
|
(actor* #:name 'asserter
|
|
(assert! 'up)
|
|
(send! 'done)))
|
|
(during/actor 'up
|
|
#:name 'up
|
|
(on-start (printf "starting\n"))
|
|
(on-stop (printf "stopping\n"))))
|
|
|
|
(actor* #:name 'triggerer
|
|
(until (asserted (observe 'trigger)))
|
|
(send! 'trigger)
|
|
(until (message 'done))
|
|
(printf "got done\n")
|
|
(send! (set-timer 'timer 500 'relative))
|
|
(until (message (timer-expired 'timer _))))
|