[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
|