[squeak-dev] Error: ExternalUnixOSProcess not garbage-collected
Winfried Jacobs
w.jacobs at gmx.de
Wed Apr 16 23:17:08 UTC 2008
Hello list,
I have a problem with ExternalUnixOSProcess objects. In my squeak
program I create them a lot, but they do not get garbage-collected, and
after 1200 of them are created, the program stops with an error:
'cannot create OS pipe' (error thrown in External pipe>>makePipe).
The following script demonstrates what is going on:
"### Script ###"
1500 timesRepeat: [
p := PipeableOSProcess command: 'ls'.
"these commands don't make a difference ... :"
"p finalize."
"p release."
"p processProxy finalize."
"p close; closePipes."
Transcript
show: PipeableOSProcess allInstances size;
show: '-';
show: ExternalUnixOSProcess allInstances size;
space.
] .
Smalltalk garbageCollect.
"### End of Script ###"
The Transcript shows that the number of PipeableOSProcess instances
stays constant (more or less), while the number of ExternalUnixOSProcess
instances goes up, and I have no idea how to get rid of them.
After restarting the squeak image (save-quit-start) the
ExternalUnixOSProcess objects are gone.
The configuration:
- vm-version: Squeak3.9alpha on a Ubuntu Linux
- image version: Squeak 3.9 ("Ramon Leon's image")
- 'OSProcess versionInformation' gives:
- OSProcess version 4.3.6
- CommandShell version 4.3.2 (not installed in this image)
Does anybody have an idea what's possibly wrong?
Thank you in advance
Winfried
More information about the Squeak-dev
mailing list
|