]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
bpo-45835: Fix race condition in test_queue (#29601)
authorSam Gross <colesbury@gmail.com>
Thu, 18 Nov 2021 08:51:30 +0000 (03:51 -0500)
committerGitHub <noreply@github.com>
Thu, 18 Nov 2021 08:51:30 +0000 (09:51 +0100)
commitdf3e53d86b2ad67da9ac2b5a3f56257d1f394982
tree9e3c4fa3de064a5b8829c6f6b7677767d6736224
parent25ecc040d007a55e4b5c30fa739054b52c1aacac
bpo-45835: Fix race condition in test_queue (#29601)

Some of the tests in test_queue had a race condition in which a
non-sentinel value could be enqueued after the final sentinel value
leading to not all the inputs being processed (and test failures).

This changes feed() to enqueue a sentinel once the inputs are exhausted,
which guarantees that the final queued object is a sentinel. This
requires the number of feeder threads to match the number of consumer
threads, but that's already the case in the relevant tests.
Lib/test/test_queue.py
Misc/NEWS.d/next/Tests/2021-11-17-14-28-08.bpo-45835.Mgyhjx.rst [new file with mode: 0644]