[klm@kth cube-server]$ cat process-control.scm (use posix srfi-18 miscmacros) ;; we can kill process with close-*-port: (define (tiger-dance) (receive (pip pop pid) (process "cat" '()) (display "hello\n" pop) (print "read: " (read-line pip)) (close-input-port pip) (close-output-port pop) (print "done"))) ;; but that causes strange 'bugs'? ;; this hangs: (repeat 3 (thread-start! tiger-dance)) (thread-sleep! 0.1) (print "we're done") ;;(print (read-line)) [klm@kth cube-server]$ csi -s process-control.scm read: hello ^C Warning (#): in thread: (process) abnormal process exit 9509 2 Call history: [tiger-dance] (process "cat" (quote ())) [tiger-dance] (display "hello\n" pop) [tiger-dance] (print "read: " (read-line pip)) [tiger-dance] (read-line pip) [tiger-dance] (close-input-port pip) [tiger-dance] (close-output-port pop) <-- *** user interrupt ***