]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
[3.12] gh-109917: Fix test instability in test_concurrent_futures (GH-110306) (#110315)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Tue, 3 Oct 2023 22:28:13 +0000 (15:28 -0700)
committerGitHub <noreply@github.com>
Tue, 3 Oct 2023 22:28:13 +0000 (22:28 +0000)
commit414f5620812584906eed8a19405f148641b248d6
tree74a1b81ddf29dbac4ad1f572590eff42e89e142f
parent4c0f42bbc6fb9d2d0b46ecff07b995655a43c4ce
[3.12] gh-109917: Fix test instability in test_concurrent_futures (GH-110306) (#110315)

gh-109917: Fix test instability in test_concurrent_futures (GH-110306)

The test had an instability issue due to the ordering of the dummy
queue operation and the real wakeup pipe operations. Both primitives
are thread safe but not done atomically as a single update and may
interleave arbitrarily. With the old order of operations this can lead
to an incorrect state where the dummy queue is full but the wakeup
pipe is empty. By swapping the order in clear() I think this can no
longer happen in any possible operation interleaving (famous last
words).
(cherry picked from commit a376a72bd92cd7c9930467dd1aba40045fb75e3b)

Co-authored-by: elfstrom <elfstrom@users.noreply.github.com>
Lib/test/test_concurrent_futures/test_deadlock.py