On Sun, Sep 12, 2010 at 6:26 PM, Taylor Venable <[email protected]>wrote:

> I was writing a program which ran an input file through sed first before
> processing when I hit this:
>
> 1 ]=> (let ((iss (open-input-string "foo")) (oss (open-output-string)))
> (run-shell-command "sed --version" 'input iss 'output oss))
>
> ;The port #[i/o-port 39 for channels: #[channel 40] #[channel 41]]
> signalled an error:
> The primitive channel-write, while executing the write system call,
> received the error: Broken pipe.
> ;To continue, call RESTART with an option number:
> ; (RESTART 1) => Return to read-eval-print level 1.
>
> 2 error>
>
> I get this sometimes: not every single time but frequently enough to be
> annoying; this particular example happens about 80% of the time on my
> (reasonably quick Linux AMD64) system, but when I do more I/O it doesn't
> happen at all (or perhaps so rarely I haven't yet encountered it).  I'm
> using 9.0.1 from Git; the last commit on my checkout was
> 780686c757d2c1c888575046f4e1c3beacb9176b.  Please let me know if there's
> anything more I can report or do to help test.
>
> --
> Taylor C. Venable
> http://metasyntax.net/
>

Oh, I suppose this is probably entirely natural: (I assume) just because I
had given the program input but it had already closed its input stream
before scheme could write it. I don't know why I was thinking yesterday that
this was a problem per se; I guess the real question is whether there is a
way to suppress SIGPIPE so it doesn't interrupt execution by raising an
error (if that's what's going on here).

-- 
Taylor C. Venable
http://metasyntax.net/
_______________________________________________
MIT-Scheme-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/mit-scheme-devel

Reply via email to