[Python-Dev] Status of thread cancellation

Jean-Paul Calderone exarkun at divmod.com
Thu Mar 15 16:12:36 CET 2007


On 2007年3月15日 09:41:31 -0500, skip at pobox.com wrote:
>> >> I just proposed to implement thread cancellation for the SoC. Is
> >> there any prior work where one could start?
>> Jean-Paul> The outcome of some prior work, at least:
>> Jean-Paul> http://java.sun.com/j2se/1.4.2/docs/guide/misc/threadPrimitiveDeprecation.html
>>I responded to that. I got the impression reading that page that the killed
>thread doesn't regain control so it can't clean up its potentially
>inconsistent data structures.

The second question on the page:
 Couldn't I just catch the ThreadDeath exception and fix the damaged object?
Addresses this.
>I inferred from Martin's proposal that he
>expected the thread to be able to catch the exception. Perhaps he can
>elaborate on what cleanup actions the dying thread will be allowed to
>perform.

Perhaps he can. Hopefully, he can specifically address these points:
 1. A thread can throw a ThreadDeath exception almost anywhere. All
 synchronized methods and blocks would have to be studied in great
 detail, with this in mind.
 2. A thread can throw a second ThreadDeath exception while cleaning up
 from the first (in the catch or finally clause). Cleanup would have
 to repeated till it succeeded. The code to ensure this would be quite
 complex. 
Jean-Paul


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /