[Top][All Lists]

[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.

Attachment: cvs-waitpid.patch
Description: Text Data

Johannes Grødem <OpenPGP: 5055654C>

reply via email to

[Prev in Thread] Current Thread [Next in Thread]