[Python-Dev] Re: [Python-checkins] CVS: python/nondist/peps pep-0042.txt,1.43,1.44

Guido van Rossum guido@python.org
Tue, 14 Nov 2000 07:06:48 -0500


> On Mon, 13 Nov 2000, Guido van Rossum wrote:
> 
> > +     - Killing a thread from another thread.  Or maybe sending a
> > +       signal.  Or maybe raising an asynchronous exception.
> > + 
> > +       http://sourceforge.net/bugs/?func=detailbug&bug_id=121115&group_id=5470
> 
> In general, killing threads in considered a bad idea. It is usually much
> better to design the application properly, and being aware that a thread
> doing nothing is not that big a deal.

Sorry.  I agree 99% (see the referenced thread).  But this keeps
coming up as a feature request, so I figured that there should be
*something* we could offer -- if only some support library calls to
make implementing this common pattern smooth.

For that 1%, I believe that raising an asynchronous exception takes away
*most* of the objections against killing threads -- it gives the
thread control over recovery, since exceptions are to be expected
anyway.

Also note that in a long-running server, losing a thread every once in
a while means leaking a lot of memory!  So (in that case) the
application design cannot afford to just "park" unproductive threads
forever -- it must contain a robust way of recovering their resources.

--Guido van Rossum (home page: http://www.python.org/~guido/)