Miscellany
public text v1 · immutable (define (do-message type data)
(let ((tag (next-tag)))
(call/cc (lambda (return)
(set! tag-cc (append tag-cc (list (cons tag return))))
(9p:send-message outport (make-9p:message type tag data))
(let* ((a (9p:receive-message inport))
(rtag (9p:message-tag a))
(ret (alist-ref rtag tag-cc)))
(if ret
(begin
(set! tag-cc (alist-remove rtag tag-cc))
(ret a))
#f))))))