I'm doing some multi-threaded programming and before diving into the
C/C++ code I though I'd do some in Python first. I decided to read
through the threading module and I understand some of it, but I don't
understand this, though I'm sure it is easy:
The condition object has a method _is_owned, which is called if the lock
doesn't have one. The RLock does have one but a regular lock not. It
is supposed to return true if the lock is owned by the current thread:
def _is_owned(self):
# Return True if lock is owned by currentThread.
# 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
It seems that for a condition without an RLock but a Lock,
self.__lock.acquire(0) will return False even if the lock is owned by
another thread other than the current thread, so _is_owned would return
True even if the lock is owned by another thread.
B. Vanderburg II
--
http://mail.python.org/mailman/listinfo/python-list