syndicate-rkt/syndicate-examples/dummy-port-relay.rkt

22 lines
802 B
Racket

#lang syndicate
;;; SPDX-License-Identifier: LGPL-3.0-or-later
;;; SPDX-FileCopyrightText: Copyright © 2022-2024 Tony Garnock-Jones <tonyg@leastfixedpoint.com>
(require syndicate/distributed/ports)
(message-struct log (timestamp details))
(module+ main
(standard-actor-system/no-services (ds)
(spawn #:name 'main
(facet-prevent-inert-check! this-facet)
(run-port-relay
#:export
(ref (during* (lambda (a)
(eprintf "assert ~a\n" a)
(match (hash-ref a 'log #f)
[(embedded l)
(send! l (log "-" (hash 'line "hello!")))]
[_ (void)])
(on-stop (eprintf "retract ~a\n" a)))))))))