[Python-Dev] Eliminating f_tstate (original) (raw)

Michael Hudson mwh at python.net
Mon Jan 22 09:34:03 CET 2007


"Martin v. Löwis" <martin at v.loewis.de> writes:

Bug #1579370 reports a crash when accessing the thread state of a terminated thread, when releasing a generator object.

In analysing the problem, I found that ftstate doesn't have much utility: it is used in very few places, and in these places, it might be as good or better to use the current thread state (rather than the frame's thread state); in some (most?) of these places, the current thread should be identical to the frame's thread, anyway. So I would like to propose that the ftstate member is removed from the frame object. For Python 2.5, for compatibility, it probably has to remain where it is, and only PyTraceBackHere should stop using it. As a consequence, a generator .send() makes exceptions occur in the current thread, not in the thread where the generator was created. What do you think?

Without having read the code in detail, I think what you say makes a great deal of sense.

Cheers, mwh

-- (FREE|OPEN) BSD: Shire horse. Solid, reliable, only occasionally prone to crushing you against a wall and then only because you've told it to without knowing. -- Jim's pedigree of operating systems, asr



More information about the Python-Dev mailing list