[Python-Dev] threading.Semaphore()'s counter can become negative for non-ints

T.B. bauertomer at gmail.com
Tue Jan 31 22:58:40 CET 2012


> I concur. This is very much a non-problem.
> There is no need to add more code and slow
> running time with superfluous type checks.
>>> Raymond
>
What do you think about the following check from threading.py:
@@ -317,8 +317,6 @@
 self._value = value
 def acquire(self, blocking=True, timeout=None):
- if not blocking and timeout is not None:
- raise ValueError("can't specify timeout for non-blocking 
acquire")
 rc = False
(There are similar checks in Modules/_threadmodule.c)
Removing the check means that we ignore the timeout argument when 
blocking=False. Currently in the multiprocessing docs there is an 
outdated note concerning acquire() methods that also says: "If block is 
False then timeout is ignored". This makes the acquire() methods of the 
threading and multiprocessing modules have different behaviors.
Related: http://bugs.python.org/issue850728#msg103227
TB


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /