Semaphore.acquire() accepts timeout=-1
This commit is contained in:

committed by
Sergey Shepelev

parent
a332f2a8e6
commit
4f3eaa0f54
@@ -78,9 +78,17 @@ class Semaphore(object):
|
|||||||
When invoked with blocking set to false, do not block. If a call without
|
When invoked with blocking set to false, do not block. If a call without
|
||||||
an argument would block, return false immediately; otherwise, do the
|
an argument would block, return false immediately; otherwise, do the
|
||||||
same thing as when called without arguments, and return true.
|
same thing as when called without arguments, and return true.
|
||||||
|
|
||||||
|
Timeout value must be strictly positive.
|
||||||
"""
|
"""
|
||||||
if not blocking and timeout is not None:
|
if timeout == -1:
|
||||||
|
timeout = None
|
||||||
|
if timeout is not None and timeout < 0:
|
||||||
|
raise ValueError("timeout value must be strictly positive")
|
||||||
|
if not blocking:
|
||||||
|
if timeout is not None:
|
||||||
raise ValueError("can't specify timeout for non-blocking acquire")
|
raise ValueError("can't specify timeout for non-blocking acquire")
|
||||||
|
timeout = 0
|
||||||
if not blocking and self.locked():
|
if not blocking and self.locked():
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user