lock: loop a finite number of times in trylock (
issue4787)
..before falling back to lock, which will sleep. This only addresses
the CPU consumption of the reported issue.
--- a/mercurial/lock.py Fri Aug 14 12:25:14 2015 +0900
+++ b/mercurial/lock.py Mon Aug 24 13:24:43 2015 -0500
@@ -83,7 +83,9 @@
if lock._host is None:
lock._host = socket.gethostname()
lockname = '%s:%s' % (lock._host, self.pid)
- while not self.held:
+ retry = 5
+ while not self.held and retry:
+ retry -= 1
try:
self.vfs.makelock(lockname, self.f)
self.held = 1