[Python-checkins] gh-89474: Improve Semaphore/BoundedSemaphore.release() for multiple thread waiting (GH-92447)
corona10
webhook-mailer at python.org
Sun May 8 09:34:13 EDT 2022
https://github.com/python/cpython/commit/c826867b7c1bb69639290d8df0f850ec3f9a6c72
commit: c826867b7c1bb69639290d8df0f850ec3f9a6c72
branch: main
author: Dong-hee Na <donghee.na at python.org>
committer: corona10 <donghee.na92 at gmail.com>
date: 2022-05-08T22:33:53+09:00
summary:
gh-89474: Improve Semaphore/BoundedSemaphore.release() for multiple thread waiting (GH-92447)
files:
M Lib/threading.py
diff --git a/Lib/threading.py b/Lib/threading.py
index 642f93e1eec31..40edcde11539d 100644
--- a/Lib/threading.py
+++ b/Lib/threading.py
@@ -481,8 +481,7 @@ def release(self, n=1):
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 @@ def release(self, n=1):
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:
More information about the Python-checkins
mailing list