# HG changeset patch # User Siddharth Agarwal # Date 2015-09-25 19:39:23 # Node ID efd57cd6fd1d5eb76102fabfc45676873bbba29d # Parent 431094a3b21fa875b5fdc3e4a04404a2936a5abf localrepo: allow wlock to be inherited This is part of a series that will allow locks to be inherited by subprocesses in limited circumstances. When allowed, the parent process will pass down requisite information to the child process by way of this environment variable. diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -1296,7 +1296,7 @@ class localrepository(object): l = self._lock(self.vfs, "wlock", wait, unlock, self.invalidatedirstate, _('working directory of %s') % - self.origroot) + self.origroot, parentenvvar='HG_WLOCK_LOCKER') self._wlockref = weakref.ref(l) return l diff --git a/tests/test-fncache.t b/tests/test-fncache.t --- a/tests/test-fncache.t +++ b/tests/test-fncache.t @@ -205,7 +205,7 @@ Aborting lock does not prevent fncache w > from mercurial import commands, util > from mercurial.extensions import wrapfunction > - > def lockexception(orig, vfs, lockname, wait, releasefn, acquirefn, desc): + > def lockexception(orig, vfs, lockname, wait, releasefn, acquirefn, desc, parentenvvar=None): > def releasewrap(): > raise util.Abort("forced lock failure") > return orig(vfs, lockname, wait, releasewrap, acquirefn, desc)