[squeak-dev] Re: OSProcess left-over pipe handles?

Andreas Raab andreas.raab at gmx.de
Sat Dec 12 03:17:50 UTC 2009


Gerardo Richarte wrote:
> without going to see anything in squeak (so, maybe totally wrong),
> usually when you call pipe() in unix, you then fork() and pass one of
> the two descriptors to the child process. The common practice is to
> close() the file descriptors passed to the child process. This has to be
> done in the parent process after forking. Otherwise the parent keeps
> open the end of the pipe() corresponding to the child.

Thanks. We're using PipeableOSProcess to be able to get to the output of 
various commands.

> Of course, after finishing you also hahve to close() the other end of
> the pipe() in the parent. The child process usually dies, hence closing
> all file descriptors. But, if the child doesn't die, then you have to be
> careful to also close the file descriptors belonging to the parent, and
> the proper way to do it is to close them just after forking, in the
> child process... something like:

Hm ... not sure what OSProcess does in that regard. Anyone know?

Thanks for the info!

Cheers,
   - Andreas




More information about the Squeak-dev mailing list