[Q] Process termination / GC

Lex Spoon lex at cc.gatech.edu
Mon Jul 28 20:37:31 UTC 2003


In short, a process will never get GC-ed.  You have to terminate it
yourself.  My MuSwiki server had a funny bug regarding this, because
ConnectionQueue's will keep accepting connections even if you think they
have become garbage!  I ended up with three CQ's instead of one, and
they actually accepted connection in *exactly* a round-robin fashion! 
The observable was that exactly every third connection to the server
worked fine, while the others connected but then hung.

IMHO, try to avoid processes whenever you can.  Usually you can find a
single-threaded version that has just one point of ugliness: the point
where you have to dispatch between the "threads".  The multi-threaded
version usually turns out to have even more ugliness, in the form of
synchronization.  Plus, the multi-threaded version is usually more
difficult to debug and to test.


Lex



More information about the Squeak-dev mailing list