On 10.10.2011 23:28, John Toohey wrote:
I agree. In my own networking code, my sockets handlers on both side
never timeout. I have a manager/monitor process that I use if I have
to kill them.
Then raise Smalltalk vm maxExternalSemaphoresSilently: to an appropriate
number (max amount of socket handlers * 3 + some headroom), save your
image, and you should be set. While it has a max limit of 64k, the
socket plugin code on at least windows will max out at much less than
20k open sockets, as it uses 3 OS threads per socket. (Around 1k IIRC)
Semaphore timeouts were the old symptoms of running out of this space,
now it gives you an explicit exception instead.
maxExternalSemaphores: is what is raising the error, some info _should_
be written to wherever crLog: redirects to with a
NonInteractiveUIManager before the image terminates.
Cheers,
Henry