syndicate-2017/racket/syndicate/examples/actor/mini-echo.rkt

19 lines
501 B
Racket
Raw Normal View History

2016-07-10 16:33:16 +00:00
#lang syndicate/actor
2016-01-14 20:19:00 +00:00
(struct echo-req (body) #:prefab)
(struct echo-resp (body) #:prefab)
(actor (field [count 0])
(on (message (echo-req $body))
(send! (echo-resp body))
(count (+ (count) 1))))
2016-01-14 20:19:00 +00:00
(actor (on (message (echo-resp $body))
(printf "Received: ~v\n" body)))
2016-01-14 20:19:00 +00:00
(actor* (until (asserted (observe (echo-req _))))
(until (asserted (observe (echo-resp _))))
(send! (echo-req 0))
(send! (echo-req 1))
(send! (echo-req 2)))