mirror of
https://github.com/python/cpython.git
synced 2025-11-26 21:33:10 +00:00
Close #19787: PyThread_set_key_value() now always set the value. In Python 3.3,
the function did nothing if the key already exists (if the current value is a non-NULL pointer). _testcapi.run_in_subinterp() now correctly sets the new Python thread state of the current thread when a subinterpreter is created.
This commit is contained in:
parent
24bd028092
commit
cd0cb8ccd3
7 changed files with 24 additions and 30 deletions
|
|
@ -168,14 +168,11 @@ set_reentrant(int reentrant)
|
|||
assert(reentrant == 0 || reentrant == 1);
|
||||
if (reentrant) {
|
||||
assert(PyThread_get_key_value(tracemalloc_reentrant_key) == NULL);
|
||||
PyThread_set_key_value(tracemalloc_reentrant_key,
|
||||
REENTRANT);
|
||||
PyThread_set_key_value(tracemalloc_reentrant_key, REENTRANT);
|
||||
}
|
||||
else {
|
||||
/* FIXME: PyThread_set_key_value() cannot be used to set the flag
|
||||
to zero, because it does nothing if the variable has already
|
||||
a value set. */
|
||||
PyThread_delete_key_value(tracemalloc_reentrant_key);
|
||||
assert(PyThread_get_key_value(tracemalloc_reentrant_key) == REENTRANT);
|
||||
PyThread_set_key_value(tracemalloc_reentrant_key, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue