(import (chicken process) (chicken io) (chicken file posix) (chicken port)) (receive (in out) (create-pipe) (process-wait (process-fork ;; NOTE: Wrapping this in ##sys#kill-other-threads makes no difference (lambda () (file-close in) (duplicate-fileno out 1) (file-close out) (with-output-to-port (open-output-file* 1) (lambda () (display "Hello, world.\n") (exit 1)))) #t)) (file-close out) (duplicate-fileno in 2) (file-close in) (with-input-from-port (open-input-file* 2) (lambda () (print "GOT FROM CHILD PROCESS: " (read-line)))))