Kaydet (Commit) b446fc7f authored tarafından Skip Montanaro's avatar Skip Montanaro

add debug calls to self._note for the Semaphore class. This closes bug

443614.  I will submit a new feature request and patch to threading.py and
libthreading.tex to address the bounded semaphore issue.
üst dbec7d2c
...@@ -261,9 +261,15 @@ class _Semaphore(_Verbose): ...@@ -261,9 +261,15 @@ class _Semaphore(_Verbose):
while self.__value == 0: while self.__value == 0:
if not blocking: if not blocking:
break break
if __debug__:
self._note("%s.acquire(%s): blocked waiting, value=%s",
self, blocking, self.__value)
self.__cond.wait() self.__cond.wait()
else: else:
self.__value = self.__value - 1 self.__value = self.__value - 1
if __debug__:
self._note("%s.acquire: success, value=%s(%s)",
self, self.__value, self.__initial_value)
rc = 1 rc = 1
self.__cond.release() self.__cond.release()
return rc return rc
...@@ -271,6 +277,9 @@ class _Semaphore(_Verbose): ...@@ -271,6 +277,9 @@ class _Semaphore(_Verbose):
def release(self): def release(self):
self.__cond.acquire() self.__cond.acquire()
self.__value = self.__value + 1 self.__value = self.__value + 1
if __debug__:
self._note("%s.release: success, value=%s(%s)",
self, self.__value, self.__initial_value)
self.__cond.notify() self.__cond.notify()
self.__cond.release() self.__cond.release()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment