error because the subprocess output channel was closed by Scheme when
it detected that the subprocess had closed the other end of the pipe.
However, the "output-copier" loop continued to operate assuming that
the channel was open.
;;; -*-Scheme-*-
;;;
-;;; $Id: process.scm,v 1.43 1996/05/12 07:13:03 cph Exp $
+;;; $Id: process.scm,v 1.44 1996/05/13 05:01:11 cph Exp $
;;;
;;; Copyright (c) 1991-96 Massachusetts Institute of Technology
;;;
(loop))))))))))
(channel-nonblocking channel)
(let ((status (receiver copy-output)))
- (channel-blocking channel)
- (copy-output)
- (channel-close channel)
+ (if (channel-open? channel)
+ (begin
+ (channel-blocking channel)
+ (copy-output)
+ (channel-close channel)))
status)))
(receiver (lambda () unspecific))))
\f