Josh Rosenberg added the comment:

Per the docs ( https://docs.python.org/3/library/threading.html#rlock-objects ):

"To unlock the lock, a thread calls its release() method. acquire()/release() 
call pairs may be nested; only the final release() (the release() of the 
outermost pair) resets the lock to unlocked and allows another thread blocked 
in acquire() to proceed."

The docs aren't super clear on the return type, but they aren't so overly 
specified as to make returning either True or 1 incorrect; they use lowercase 
"true" to describe the return value, which doesn't *have* to mean True, just 
something that evaluates as truthy.

In 3.5 at least, it looks like both initial and subsequent acquires are all 
returning True, even when called without passing an argument; this actually 
violates the docs, which claim that not passing an argument means "There is no 
return value" (possibly only when there is contended acquisition, the wording 
is odd), when in fact a no-argument call returns True just like explicitly 
passing blocking as True.

----------
nosy: +josh.r

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue26608>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to