localrepo: allow creating inherited locks
authorSiddharth Agarwal <sid0@fb.com>
Fri, 25 Sep 2015 12:28:12 -0700
changeset 26439 b50f5beadf3e
parent 26438 024644b1900b
child 26440 85b992177d2a
localrepo: allow creating inherited locks This is part of a series that will allow locks to be inherited by subprocesses in limited circumstances.
mercurial/localrepo.py
--- a/mercurial/localrepo.py	Fri Sep 25 12:56:05 2015 -0700
+++ b/mercurial/localrepo.py	Fri Sep 25 12:28:12 2015 -0700
@@ -1211,10 +1211,15 @@
                 continue
             ce.refresh()
 
-    def _lock(self, vfs, lockname, wait, releasefn, acquirefn, desc):
+    def _lock(self, vfs, lockname, wait, releasefn, acquirefn, desc,
+              parentenvvar=None):
+        parentlock = None
+        if parentenvvar is not None:
+            parentlock = os.environ.get(parentenvvar)
         try:
             l = lockmod.lock(vfs, lockname, 0, releasefn=releasefn,
-                             acquirefn=acquirefn, desc=desc)
+                             acquirefn=acquirefn, desc=desc,
+                             parentlock=parentlock)
         except error.LockHeld as inst:
             if not wait:
                 raise