mirror of
https://github.com/python/cpython.git
synced 2025-07-12 13:55:34 +00:00
gh-114940: Add _Py_FOR_EACH_TSTATE_UNLOCKED(), and Friends (gh-127077)
This is a precursor to the actual fix for gh-114940, where we will change these macros to use the new lock. This change is almost entirely mechanical; the exceptions are the loops in codeobject.c and ceval.c, which now hold the "head" lock. Note that almost all of the uses of _Py_FOR_EACH_TSTATE_UNLOCKED() here will change to _Py_FOR_EACH_TSTATE_BEGIN() once we add the new per-interpreter lock.
This commit is contained in:
parent
bf542f8bb9
commit
9dabace39d
9 changed files with 79 additions and 87 deletions
|
@ -296,11 +296,12 @@ Py_SetRecursionLimit(int new_limit)
|
|||
{
|
||||
PyInterpreterState *interp = _PyInterpreterState_GET();
|
||||
interp->ceval.recursion_limit = new_limit;
|
||||
for (PyThreadState *p = interp->threads.head; p != NULL; p = p->next) {
|
||||
_Py_FOR_EACH_TSTATE_BEGIN(interp, p) {
|
||||
int depth = p->py_recursion_limit - p->py_recursion_remaining;
|
||||
p->py_recursion_limit = new_limit;
|
||||
p->py_recursion_remaining = new_limit - depth;
|
||||
}
|
||||
_Py_FOR_EACH_TSTATE_END(interp);
|
||||
}
|
||||
|
||||
/* The function _Py_EnterRecursiveCallTstate() only calls _Py_CheckRecursiveCall()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue