The new std.process is ready for review

Steven Schveighoffer schveiguy at yahoo.com
Sat Mar 9 18:01:33 PST 2013


On Sat, 09 Mar 2013 19:51:49 -0500, Vladimir Panteleev  
<vladimir at thecybershadow.net> wrote:

> On Saturday, 9 March 2013 at 16:05:15 UTC, Lars T. Kyllingstad wrote:
>> 1. Make a "special" spawnProcess() function for pipe redirection.
>> 2. Use the "process object" approach, like Tango and Qt.
>> 3. After fork(), in the child process, loop over the full range of  
>> possible file descriptors and close the ones we don't want open.
>>
>> The last one would let us keep the current API (and would have the  
>> added benefit of cleaning up unused FDs) but I have no idea how it  
>> would impact performance.
>
> How about this: Set FD_CLOEXEC on all pipes just after creation, but  
> clear the flag for the relevant pipes before exec?

This doesn't help if other threads are randomly opening file descriptors.   
That is a problem I don't think we considered.

Unix's design here is very outdated, seems to assume a single threaded app.

This does make me thing of another good point, we should unset the  
FD_CLOEXEC flag on stdout, stdin, and stderr!

-Steve


More information about the Digitalmars-d mailing list