How to force a thread to stop

Jean-Paul Calderone exarkun at divmod.com
Mon Jul 24 14:34:49 EDT 2006


On Mon, 24 Jul 2006 11:22:49 -0700, "Carl J. Van Arsdall" <cvanarsdall at mvista.com> wrote:
>Steve Holden wrote:
>> Carl J. Van Arsdall wrote:
>> [... rant ...]
>>
>>> So with this whole "hey mr. nice thread, please die for me" concept gets
>>> ugly quickly in complex situations and doesn't scale well at all.
>>> Furthermore, say you have a complex systems where users can write
>>> pluggable modules.  IF a module gets stuck inside of some screwed up
>>> loop and is unable to poll for messages there's no way to kill the
>>> module without killing the whole system.  Any of you guys thought of a
>>> way around this scenario?
>>>
>>>
>>>
>>
>> Communications through Queue.Queue objects can help. But if you research
>> the history of this design decision in the language you should discover
>> there are fairly sound rasons for not allowing arbitrary "threadicide".
>>
>>
>>
>Right, I'm wondering if there was a way to make an interrupt driven
>communication mechanism for threads?  Example: thread receives a
>message, stops everything, and processes the message.
>

And what happens if the thread was halfway through a malloc call and
the data structures used to manage the state of the heap are in an
inconsistent state when the interrupt occurs?

This has been discussed many many times in the context of many many
languages and threading libraries.  If you're really interested, do
the investigation Steve suggested.  You'll find plenty of material.

Jean-Paul



More information about the Python-list mailing list