mercurial/lock.py
branchstable
changeset 32088 0d892d820a51
parent 32087 e1938d6051da
child 35208 1b758105b5c7
--- a/mercurial/lock.py	Mon May 01 19:58:52 2017 +0900
+++ b/mercurial/lock.py	Mon May 01 19:59:13 2017 +0900
@@ -151,6 +151,12 @@
                     raise error.LockUnavailable(why.errno, why.strerror,
                                                 why.filename, self.desc)
 
+        if not self.held:
+            # use empty locker to mean "busy for frequent lock/unlock
+            # by many processes"
+            raise error.LockHeld(errno.EAGAIN,
+                                 self.vfs.join(self.f), self.desc, "")
+
     def _readlock(self):
         """read lock and return its value