mirror of
https://github.com/python/cpython.git
synced 2025-12-31 04:23:37 +00:00
[3.14] gh-135641: Fix flaky test_capi.test_lock_two_threads test case (gh-135642) (gh-135687)
The mutex may have the `_Py_HAS_PARKED` bit set.
(cherry picked from commit 17ac3933c3)
Co-authored-by: Sam Gross <colesbury@gmail.com>
This commit is contained in:
parent
1734b295b3
commit
a93ff87375
1 changed files with 4 additions and 1 deletions
|
|
@ -57,7 +57,10 @@ lock_thread(void *arg)
|
|||
_Py_atomic_store_int(&test_data->started, 1);
|
||||
|
||||
PyMutex_Lock(m);
|
||||
assert(m->_bits == 1);
|
||||
// gh-135641: in rare cases the lock may still have `_Py_HAS_PARKED` set
|
||||
// (m->_bits == 3) due to bucket collisions in the parking lot hash table
|
||||
// between this mutex and the `test_data.done` event.
|
||||
assert(m->_bits == 1 || m->_bits == 3);
|
||||
|
||||
PyMutex_Unlock(m);
|
||||
assert(m->_bits == 0);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue