tests/lockdelay.py
branchstable
changeset 28289 d493d64757eb
child 30068 a76d5ba7ac43
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/lockdelay.py	Sat Feb 27 18:22:49 2016 -0800
@@ -0,0 +1,26 @@
+# Dummy extension that adds a delay after acquiring a lock.
+#
+# This extension can be used to test race conditions between lock acquisition.
+
+from __future__ import absolute_import
+
+import os
+import time
+
+from mercurial import (
+    lock as lockmod,
+)
+
+class delaylock(lockmod.lock):
+    def lock(self):
+        delay = float(os.environ.get('HGPRELOCKDELAY', '0.0'))
+        if delay:
+            time.sleep(delay)
+        res = super(delaylock, self).lock()
+        delay = float(os.environ.get('HGPOSTLOCKDELAY', '0.0'))
+        if delay:
+            time.sleep(delay)
+        return res
+
+def extsetup(ui):
+    lockmod.lock = delaylock