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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy