8000 gh-121474: Add threading.Barrier parties arg sanity check. (GH-121480) · python/cpython@d27a53f · GitHub
[go: up one dir, main page]

Skip to content

Commit d27a53f

Browse files
authored
gh-121474: Add threading.Barrier parties arg sanity check. (GH-121480)
1 parent 3a9b2aa commit d27a53f

File tree

3 files changed

+8
-0
lines changed

3 files changed

+8
-0
lines changed

Lib/test/lock_tests.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1013,6 +1013,10 @@ def multipass(self, results, n):
10131013
self.assertEqual(self.barrier.n_waiting, 0)
10141014
self.assertFalse(self.barrier.broken)
10151015

1016+
def test_constructor(self):
1017+
self.assertRaises(ValueError, self.barriertype, parties=0)
1018+
self.assertRaises(ValueError, self.barriertype, parties=-1)
1019+
10161020
def test_barrier(self, passes=1):
10171021
"""
10181022
Test that a barrier is passed in lockstep

Lib/threading.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -689,6 +689,8 @@ def __init__(self, parties, action=None, timeout=None):
689689
default for all subsequent 'wait()' calls.
690690
691691
"""
692+
if parties < 1:
693+
raise ValueError("parties must be > 0")
692694
self._cond = Condition(Lock())
693695
self._action = action
694696
self._timeout = timeout
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Fix missing sanity check for ``parties`` arg in :class:`threading.Barrier`
2+
constructor. Patch by Clinton Christian (pygeek).

0 commit comments

Comments
 (0)
0