本文整理汇总了Python中bzrlib.lockdir.LockDir.wait_lock方法的典型用法代码示例。如果您正苦于以下问题:Python LockDir.wait_lock方法的具体用法?Python LockDir.wait_lock怎么用?Python LockDir.wait_lock使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类bzrlib.lockdir.LockDir
的用法示例。
在下文中一共展示了LockDir.wait_lock方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_32_lock_wait_succeed
# 需要导入模块: from bzrlib.lockdir import LockDir [as 别名]
# 或者: from bzrlib.lockdir.LockDir import wait_lock [as 别名]
def test_32_lock_wait_succeed(self):
"""Succeed when trying to acquire a lock that gets released
One thread holds on a lock and then releases it; another
tries to lock it.
"""
# This test sometimes fails like this:
# Traceback (most recent call last):
# File "/home/pqm/bzr-pqm-workdir/home/+trunk/bzrlib/tests/
# test_lockdir.py", line 247, in test_32_lock_wait_succeed
# self.assertEqual(1, len(self._logged_reports))
# AssertionError: not equal:
# a = 1
# b = 0
raise tests.TestSkipped("Test fails intermittently")
t = self.get_transport()
lf1 = LockDir(t, 'test_lock')
lf1.create()
lf1.attempt_lock()
def wait_and_unlock():
time.sleep(0.1)
lf1.unlock()
unlocker = Thread(target=wait_and_unlock)
unlocker.start()
try:
lf2 = LockDir(t, 'test_lock')
self.setup_log_reporter(lf2)
before = time.time()
# wait and then lock
lf2.wait_lock(timeout=0.4, poll=0.1)
after = time.time()
self.assertTrue(after - before <= 1.0)
finally:
unlocker.join()
# There should be only 1 report, even though it should have to
# wait for a while
lock_base = lf2.transport.abspath(lf2.path)
self.assertEqual(1, len(self._logged_reports))
self.assertEqual('%s %s\n'
'%s\n%s\n'
'Will continue to try until %s\n',
self._logged_reports[0][0])
args = self._logged_reports[0][1]
self.assertEqual('Unable to obtain', args[0])
self.assertEqual('lock %s' % (lock_base,), args[1])
self.assertStartsWith(args[2], 'held by ')
self.assertStartsWith(args[3], 'locked ')
self.assertEndsWith(args[3], ' ago')
self.assertContainsRe(args[4], r'\d\d:\d\d:\d\d')
示例2: test_31_lock_wait_easy
# 需要导入模块: from bzrlib.lockdir import LockDir [as 别名]
# 或者: from bzrlib.lockdir.LockDir import wait_lock [as 别名]
def test_31_lock_wait_easy(self):
"""Succeed when waiting on a lock with no contention.
"""
t = self.get_transport()
lf1 = LockDir(t, 'test_lock')
lf1.create()
self.setup_log_reporter(lf1)
try:
before = time.time()
lf1.wait_lock(timeout=0.4, poll=0.1)
after = time.time()
self.assertTrue(after - before <= 1.0)
finally:
lf1.unlock()
self.assertEqual([], self._logged_reports)