At 10:01 AM 3/21/2003, Joe Orton wrote:
>On Fri, Mar 21, 2003 at 10:49:08AM -0500, Jeff Trawick wrote:
>> apr_file_io.h says
>> 
>> /**
>>  * Unset a file from being inherited by child processes.
>>  */
>> 
>> should it instead say something like this?
>> 
>> /**
>>  * Unset a file from being inherited by subprograms
>>  */
>> 
>> where subprogram is a child process running another executable, as 
>> contrasted with a child process running the same executable (i.e., 
>> fork() but no exec())
>
>Whilst the latter is true on Unix I'm getting the impression from what
>Will is saying that the former is true on Win32.  (The comment about
>child_cleanups in apr_pools.h is equally confusing.)

Understand that fork() doesn't exist on win32 (the Perl pseudo-support
notwithstanding.)

So Unix has fork()->exec(), or simply fork().
Whereas Win32 has only exec().

Any 'child process' logic as an Apache MPM understands that idea
doesn't even exist on Win32.  We must implement our own communications
layer to identify the handles that are inherited by the children.

Windows really works more like the FD_CLOEXEC model for Unix
file handles.  The pool 'child cleanup' on Win32 is truly a noop.

Bill




Reply via email to