gh-89474: Improve Semaphore/BoundedSemaphore.release() for multiple thread waiting (GH-92447)

This commit is contained in:
Dong-hee Na 2022-05-08 22:33:53 +09:00 committed by GitHub
parent 8efda1e7c6
commit c826867b7c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 3 additions and 5 deletions

View File

@ -481,8 +481,7 @@ class Semaphore:
raise ValueError('n must be one or more')
with self._cond:
self._value += n
for i in range(n):
self._cond.notify()
self._cond.notify(n)
def __exit__(self, t, v, tb):
self.release()
@ -506,7 +505,7 @@ class BoundedSemaphore(Semaphore):
"""
def __init__(self, value=1):
Semaphore.__init__(self, value)
super().__init__(value)
self._initial_value = value
def __repr__(self):
@ -530,8 +529,7 @@ class BoundedSemaphore(Semaphore):
if self._value + n > self._initial_value:
raise ValueError("Semaphore released too many times")
self._value += n
for i in range(n):
self._cond.notify()
self._cond.notify(n)
class Event: