diff --git a/racket/syndicate/examples/actor/example-assertion-spike.rkt b/racket/syndicate/examples/actor/example-assertion-spike.rkt new file mode 100644 index 0000000..693a17d --- /dev/null +++ b/racket/syndicate/examples/actor/example-assertion-spike.rkt @@ -0,0 +1,21 @@ +#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 _))))