[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Incorrect waitpid-handling in buffer.c.
From: |
Johannes Grødem |
Subject: |
Incorrect waitpid-handling in buffer.c. |
Date: |
Sat, 01 Feb 2003 15:18:57 +0100 |
User-agent: |
Gnus/5.090007 (Oort Gnus v0.07) Emacs/21.2 (i386--freebsd) |
When doing waitpid, you should test for errno == EINTR. While it
seems that the code as it is works just fine in ordinary use, it
doesn't work properly when Meta-CVS calls it[1]. (A straightforwarDd
fork/execvp, which works in a stand-alone test-program I wrote, so I'm
guessing CLISP is doing something strange with signal-handlers.) Here
is a patch that checks for EINTR. This should be correct for Unixes,
I don't know what to do with Windows or OS/2 or whatever.
---
1. What's strange, though, is that I get a "No child processes" instead
of an "Interrupted system call", but checking for EINTR fixes it in
spite of this. I'm a bit puzzled. Regardless, though, I think the
fix should be applied.
cvs-waitpid.patch
Description: Text Data
--
Johannes Grødem <OpenPGP: 5055654C>
- Incorrect waitpid-handling in buffer.c.,
Johannes Grødem <=