Mercurial > public > mercurial-scm > hg-stable
diff mercurial/lock.py @ 1787:e431344e604c
add a timeout when a lock is held (default 1024 sec)
- change the wait keyword from lock.lock to timeout,
a negative timeout of means "wait forever"
- refactor the two lock functions from localrepo.py
- make them use the timeout (default 1024, can be changed
with ui.timeout in the config file
- update the doc
author | Benoit Boissinot <benoit.boissinot@ens-lyon.org> |
---|---|
date | Tue, 21 Feb 2006 23:21:15 +0100 |
parents | e6e70450edb9 |
children | cd5c1db2132a |
line wrap: on
line diff
--- a/mercurial/lock.py Tue Feb 21 16:46:38 2006 +0100 +++ b/mercurial/lock.py Tue Feb 21 23:21:15 2006 +0100 @@ -16,10 +16,10 @@ pass class lock(object): - def __init__(self, file, wait=1, releasefn=None): + def __init__(self, file, timeout=-1, releasefn=None): self.f = file self.held = 0 - self.wait = wait + self.timeout = timeout self.releasefn = releasefn self.lock() @@ -27,13 +27,16 @@ self.release() def lock(self): + timeout = self.timeout while 1: try: self.trylock() return 1 except LockHeld, inst: - if self.wait: + if timeout != 0: time.sleep(1) + if timeout > 0: + timeout -= 1 continue raise inst