[Python-Dev] Eliminating f_tstate

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 f_tstate 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 f_tstate member is removed
> from the frame object.
>
> For Python 2.5, for compatibility, it probably has to remain
> where it is, and only PyTraceBack_Here 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