mercurial/lock.py
changeset 26290 9664d32bd6cb
parent 26082 b188f60bd955
child 26291 1d33842c5b3e
--- a/mercurial/lock.py	Thu Sep 17 15:38:00 2015 -0700
+++ b/mercurial/lock.py	Wed Sep 16 19:26:59 2015 -0700
@@ -100,6 +100,19 @@
                     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 @@
         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: