On Sat, 2003-01-04 at 00:01, Greg Hudson wrote:
> I will figure out the appropriate APR magic to set the file descriptors
> close-on-exec.
Easier said than done, it seems.
APR doesn't know about FD_CLOEXEC, presumably because there's no
non-Unix analog. It does have child cleanups (cleanups which get run in
apr_proc_create() after the fork and before the exec), which it sets up
inconsistently for different kinds of apr_file objects. Most file
objects are set up to be closed in the child (which creates a
double-buffer-flushing bug I've mentioned in the past; we may have to
add some flushes to avoid that). Pipe file objects are set up without a
child cleanup handler--a little odd, since apr_proc_create() has special
logic to avoid triggering those child cleanups.
It seems like apr_file should have a flag for whether a file object gets
cleaned up in the child process (and the child cleanups should be
special routines which don't flush buffers). But that sounds like a lot
of work. In the meantime, I guess we should set up our own child
cleanups on the pipes.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Jan 4 06:40:48 2003