mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
Issue #19787: PyThread_set_key_value() now always set the value
In Python 3.3, PyThread_set_key_value() did nothing if the key already exists (if the current value is a non-NULL pointer). When _PyGILState_NoteThreadState() is called twice on the same thread with a different Python thread state, it still keeps the old Python thread state to keep the old behaviour. Replacing the Python thread state with the new state introduces new bugs: see issues #10915 and #15751.
This commit is contained in:
parent
cb1c4c8c22
commit
590cebe391
6 changed files with 24 additions and 39 deletions
|
@ -627,9 +627,6 @@ int
|
|||
PyThread_set_key_value(int key, void *value)
|
||||
{
|
||||
int fail;
|
||||
void *oldValue = pthread_getspecific(key);
|
||||
if (oldValue != NULL)
|
||||
return 0;
|
||||
fail = pthread_setspecific(key, value);
|
||||
return fail ? -1 : 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue