]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
bpo-45835: Fix race condition in test_queue (GH-29601)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Thu, 18 Nov 2021 16:16:06 +0000 (08:16 -0800)
committerGitHub <noreply@github.com>
Thu, 18 Nov 2021 16:16:06 +0000 (08:16 -0800)
commit9450c751cc2053b1c2e03ec92ed822a41223b142
treec8441acf90e75f855c8f40c2b712b1a5aa3fd5a7
parent71d842b9c1e9d86ede449783e630b7a768b579d6
bpo-45835: Fix race condition in test_queue (GH-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.
(cherry picked from commit df3e53d86b2ad67da9ac2b5a3f56257d1f394982)

Co-authored-by: Sam Gross <colesbury@gmail.com>
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]