[ python-Bugs-926910 ] Overenthusiastic check in Swap?

SourceForge.net noreply at sourceforge.net
Mon Jun 7 01:15:58 EDT 2004


Bugs item #926910, was opened at 2004-03-31 14:34
Message generated for change (Comment added) made by rhettinger
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=926910&group_id=5470

Category: Threads
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: benson margulies (benson_basis)
>Assigned to: Mark Hammond (mhammond)
Summary: Overenthusiastic check in Swap?

Initial Comment:
When Py_DEBUG is turned on, PyThreadState_Swap 
calls in a fatal error if the two different thread states 
are ever used for a thread.

I submit that this is not a good check. The 
documentation encourages us to write code that 
creates and destroys thread states as C threads come 
and go. Why can't a single C thread make a thread 
state, release it, and then make another one later?

One particular usage pattern:

We have an API that initializes embedded python. Then 
we have another API where the callers are allowed to be 
in any C thread. The second API has no easy way to tell 
if a thread used for it happens to be the same thread 
that made the initialization call. As the code is written 
now, any code running on the 'main thread' is required 
to fish out the build-in main-thread thread state.


----------------------------------------------------------------------

>Comment By: Raymond Hettinger (rhettinger)
Date: 2004-06-07 00:15

Message:
Logged In: YES 
user_id=80475

Mark, I believe this is your code.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=926910&group_id=5470



More information about the Python-bugs-list mailing list