(module vandusen-remote () (import chicken scheme extras) (use vandusen tcp srfi-18 regex-case) (plugin 'remote (lambda () (let ((listener (tcp-listen ($ 'remote-port)))) (add-finalizer (lambda () (debug "finalizing remote listener") (tcp-close listener))) (thread-start! (lambda () (let loop () (receive (in out) (tcp-accept listener) (thread-start! (lambda () (regex-case (read-line in) ((quote (: bos (submatch (+ (~ space))) " " (submatch (+ any)) eos)) (_ recipient message) (say message recipient))) (close-input-port in) (close-output-port out))) (loop)))))))))