On 2012-10-10 01:32, Wenhua Zhao wrote:
Hi list,

I just noticed that in /usr/lib/python2.7/threading.py

class _Condition(_Verbose):
     ...
     def _is_owned(self):
         # Return True if lock is owned by current_thread.
         # This method is called only if __lock doesn't have
_is_owned().
         if self.__lock.acquire(0):
             self.__lock.release()
             return False
         else:
             return True

The return values seem to be wrong.  They should be swapped:

     def _is_owned(self):
         if self.__lock.acquire(0):
             self.__lock.release()
             return True
         else:
             return False

Or I understood it wrong here?

The .acquire method will return True if the attempt to acquire has been
successful. This can occur only if it is not currently owned.

In pseudocode:

if the attempt to acquire it succeeds:
    no-one owed it before, but now I own it
    release it
    now no-one owns it
    return False
else:
    someone already owns it
    return True

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to