Used only for debugging purposes.
"""
- self.__lock.acquire(shared=1)
+ # If we don't already own the set-level lock acquired
+ # we'll get it and note we need to release it later.
+ release_lock = False
+ if not self.__lock._is_owned():
+ release_lock = True
+ self.__lock.acquire(shared=1)
try:
result = self.__names()
finally:
- self.__lock.release()
+ if release_lock:
+ self.__lock.release()
return set(result)
def acquire(self, names, blocking=1, shared=0):
def testAcquireSetLock(self):
# acquire the set-lock exclusively
self.assertEquals(self.ls.acquire(None), set(['one', 'two', 'three']))
+ self.assertEquals(self.ls._list_owned(), set(['one', 'two', 'three']))
+ self.assertEquals(self.ls._is_owned(), True)
+ self.assertEquals(self.ls._names(), set(['one', 'two', 'three']))
# I can still add/remove elements...
self.assertEquals(self.ls.remove(['two', 'three']), ['two', 'three'])
self.assert_(self.ls.add('six'))