[PATCH 2 of 4] lock: factor code to read lock into a separate function
Siddharth Agarwal
sid0 at fb.com
Mon Sep 21 23:33:15 CDT 2015
# HG changeset patch
# User Siddharth Agarwal <sid0 at fb.com>
# Date 1442456819 25200
# Wed Sep 16 19:26:59 2015 -0700
# Node ID 9a99a53a7f7c818dd41370dcbd86d4e237f98552
# Parent 33a63670e1c5e4bb431ac1fe66839654eb5b3b06
lock: factor code to read lock into a separate function
This is going to be needed for upcoming work with lock inheritance.
diff --git a/mercurial/lock.py b/mercurial/lock.py
--- a/mercurial/lock.py
+++ b/mercurial/lock.py
@@ -100,6 +100,19 @@ class lock(object):
raise error.LockUnavailable(why.errno, why.strerror,
why.filename, self.desc)
+ def _readlock(self):
+ """read lock and return its value
+
+ Returns None if no lock exists, pid for old-style locks, and host:pid
+ for new-style locks.
+ """
+ try:
+ return self.vfs.readlock(self.f)
+ except (OSError, IOError) as why:
+ if why.errno == errno.ENOENT:
+ return None
+ raise
+
def testlock(self):
"""return id of locker if lock is valid, else None.
@@ -111,12 +124,9 @@ class lock(object):
The lock file is only deleted when None is returned.
"""
- try:
- locker = self.vfs.readlock(self.f)
- except (OSError, IOError) as why:
- if why.errno == errno.ENOENT:
- return None
- raise
+ locker = self._readlock()
+ if locker is None:
+ return None
try:
host, pid = locker.split(":", 1)
except ValueError:
More information about the Mercurial-devel
mailing list