#lang imperative-syndicate (provide (struct-out server-loopback-connection)) (require "../client.rkt") (require "../wire-protocol.rkt") (require "../protocol.rkt") (require/activate imperative-syndicate/distributed/server) (assertion-struct server-loopback-connection (scope)) (spawn #:name 'loopback-client-factory (during/spawn (server-connection ($ address (server-loopback-connection $scope))) #:name address (assert (server-poa address scope)) (on (message (message-server->poa address $p)) (send! (server-packet address p))) (generic-client-session-facet address (lambda (x) (send! (message-poa->server address x))))))