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

Reply via email to