[squeak-dev] Error: ExternalUnixOSProcess not garbage-collected

Winfried Jacobs w.jacobs at gmx.de
Mon Apr 21 09:36:48 UTC 2008


Hello David,

great, thanks a lot for your explanation!  Now I'm doing "OSProcess 
thisOSProcess discardExitedChildren"  every 10 minutes, and since then 
the image has been running for days without a problem.

Thanks,
Winfried

 
David T. Lewis schrieb:
>
> Hi Winfried,
>
> To kill an external OS process, use #terminate.
>
> The reason that you are running out of pipes is that the processes
> are still running. If you do "p upToEnd" to read the output of the
> command, it will complete normally. If you do "p terminate", it will
> complete abnormally, and either way the pipes will be cleaned up.
> The limit on number of open pipes (file handles) is imposed by the
> operating system.
>
> The reason that your external processes are not garbage collected is
> that there is a reference to them in the process proxy for your
> Squeak VM (OSProcess thisOSProcess allMyChildren). If you want to
> clean this up, you can do "OSProcess thisOSProcess discardExitedChildren"
> or "OSProcess thisOSProcess resetChildProcessDictionary". This is
> not done automatically, which could become a problem if you have a
> very long-running Squeak image I suppose.
>
> Dave
>
>
>   




More information about the Squeak-dev mailing list