mercurial/lock.py
changeset 1787 e431344e604c
parent 1753 e6e70450edb9
child 1836 cd5c1db2132a
--- 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