> > >   +    * I think apr_open_stderr() and friends dup() the descriptor. That
> > >   +      would allow the new/returned file to be closed (via pool cleanup
> > >   +      or manually) without accidentally closing stderr/out.
> > 
> > The goal of those functions is to actually get stderr, stdout, stdin into
> > an apr_file_t.  The only reason they exist, is because Windows requires an
> > extra function to get stderr, stdout, stdin when we use native file
> > types.  If you want to dup them, then that should be done by you
> > explicitly.  There is no reason to cause that extra call for programs that
> > know they don't want to do the dup.
> 
> Subversion makes ample use of subpools. If the apr_file_t for stderr was
> placed into a subpool, then the thing would get closed when a pool cleanup
> occurred.
> 
> And I can't dup the file after it has been placed into an apr_file_t. The
> first will continue to exist, and would get closed on cleanup.

I guess I am confused why you can't use apr_open_std*() and then call
apr_file_dup() on the file_t.  If you then call apr_close_file on the file
returned from apr_open_std*, you should be fine, because you will have two
references to the file, and closing one shouldn't hurt anything.

Ryan

_______________________________________________________________________________
Ryan Bloom                              [EMAIL PROTECTED]
406 29th St.
San Francisco, CA 94131
-------------------------------------------------------------------------------


Reply via email to