[ python-Feature Requests-443775 ] Update to the BEGIN_ALLOW_THREADS macros

SourceForge.net noreply at sourceforge.net
Fri Mar 16 06:27:07 CET 2007


Feature Requests item #443775, was opened at 2001-07-23 05:34
Message generated for change (Comment added) made by nnorwitz
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=355470&aid=443775&group_id=5470

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Python Interpreter Core
Group: None
>Status: Closed
>Resolution: Rejected
Priority: 1
Private: No
Submitted By: Martin Sjögren (msjogren)
Assigned to: Nobody/Anonymous (nobody)
Summary: Update to the BEGIN_ALLOW_THREADS macros

Initial Comment:
The Py_BEGIN_ALLOW_THREADS and Py_END_ALLOW_THREADS
currently do not support supplying WHERE to save the
thread state via an argument. I needed that for a
project myself so I wrote the following:

#ifdef WITH_THREAD
#  define MY_BEGIN_ALLOW_THREADS(st)    \
    { st = PyEval_SaveThread(); }
#  define MY_END_ALLOW_THREADS(st)      \
    { PyEval_RestoreThread(st); st = NULL; }
#else
#  define MY_BEGIN_ALLOW_THREADS(st)
#  define MY_END_ALLOW_THREADS(st)      { st = NULL; }
#endif

This has, of course, the drawback that whenever the
Py_BEGIN_ALLOW_THREADS macro changes I have to change mine!

Therefore, I propose that these macros (under different
names certainly) or macros that work something like
this (I can't have asymmetric { and } in them, since I
needed to retrieve the thread state somewhere else) in
the standard Python distribution.

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

>Comment By: Neal Norwitz (nnorwitz)
Date: 2007-03-15 22:27

Message:
Logged In: YES 
user_id=33168
Originator: NO

As Brett says, you can use the _save variable.  Since no one else has
requested this feature it doesn't seem worth it to change.

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

Comment By: Brett Cannon (bcannon)
Date: 2003-05-12 17:08

Message:
Logged In: YES 
user_id=357491

Couldn't you cheat and access the _save variable that 
Py_BEGIN_ALLOW_THREADS creates?  And does PEP 311 help solve your 
usage need at all?

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

Comment By: Michael Dubner (dubnerm)
Date: 2003-01-17 21:16

Message:
Logged In: YES 
user_id=39274

I think that current Py_BEGIN/END_ALLOW_THREADS macroses
model (with block) is choosen to enforce compile-time
pairwise check. Isn't it?

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

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


More information about the Python-bugs-list mailing list