[squeak-dev] FileStreams Limit
tonyg at leastfixedpoint.com
Thu Feb 17 07:51:29 UTC 2022
On 2/17/22 08:20, Jörg Belger wrote:
> Is there a limit with file streams? I cannot open more than 238 on my macOSX. The 239th fails and Squeak runs with 100% cpu power. I changed then the method StandardFileStream>>open:forWrite: and removed the #retryWithGC:until:forFileNamed:, because it looked to me, that it does not much things. Now I get a <nil> back from the primitive.
There may be a per-process limit on the number of file descriptors. When
Squeak runs out, it is (I suspect) assuming that some unused file
handles exist on the heap, so it tries to GC, hoping that a collection
will close some unwanted file descriptors. Unfortunately if it really is
running up against the limit, this strategy won't help! (We should do
something better... but what?)
You might be able to see what the current limit is with `ulimit -a`.
If that's the cause of the problem, you could try to raise the limit at
the OS level - I'm afraid I don't have a mac to hand to try it myself
More information about the Squeak-dev