annotate tests/lockdelay.py @ 36238:f574cc00831a

node: make bin() be a wrapper instead of just an alias This includes a full backout of 59affe7e and 30d0cb27. Per the review of the former, we'd rather adapt the API to behave like it used to (at least for now), and take a second run at it if it shows up in our performance numbers. I ran perfrevlogindex with and without this change and it didn't make a measurable difference, so maybe it's fine (despite my intuition to the contrary). Differential Revision: https://phab.mercurial-scm.org/D2279
author Augie Fackler <augie@google.com>
date Wed, 14 Feb 2018 21:34:12 -0500
parents a76d5ba7ac43
children 2372284d9457
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
28289
d493d64757eb hg: obtain lock when creating share from pooled repo (issue5104)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
1 # Dummy extension that adds a delay after acquiring a lock.
d493d64757eb hg: obtain lock when creating share from pooled repo (issue5104)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
2 #
d493d64757eb hg: obtain lock when creating share from pooled repo (issue5104)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
3 # This extension can be used to test race conditions between lock acquisition.
d493d64757eb hg: obtain lock when creating share from pooled repo (issue5104)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
4
d493d64757eb hg: obtain lock when creating share from pooled repo (issue5104)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
5 from __future__ import absolute_import
d493d64757eb hg: obtain lock when creating share from pooled repo (issue5104)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
6
d493d64757eb hg: obtain lock when creating share from pooled repo (issue5104)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
7 import os
d493d64757eb hg: obtain lock when creating share from pooled repo (issue5104)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
8 import time
d493d64757eb hg: obtain lock when creating share from pooled repo (issue5104)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
9
30068
a76d5ba7ac43 pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28289
diff changeset
10 def reposetup(ui, repo):
28289
d493d64757eb hg: obtain lock when creating share from pooled repo (issue5104)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
11
30068
a76d5ba7ac43 pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28289
diff changeset
12 class delayedlockrepo(repo.__class__):
a76d5ba7ac43 pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28289
diff changeset
13 def lock(self):
a76d5ba7ac43 pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28289
diff changeset
14 delay = float(os.environ.get('HGPRELOCKDELAY', '0.0'))
a76d5ba7ac43 pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28289
diff changeset
15 if delay:
a76d5ba7ac43 pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28289
diff changeset
16 time.sleep(delay)
a76d5ba7ac43 pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28289
diff changeset
17 res = super(delayedlockrepo, self).lock()
a76d5ba7ac43 pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28289
diff changeset
18 delay = float(os.environ.get('HGPOSTLOCKDELAY', '0.0'))
a76d5ba7ac43 pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28289
diff changeset
19 if delay:
a76d5ba7ac43 pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28289
diff changeset
20 time.sleep(delay)
a76d5ba7ac43 pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28289
diff changeset
21 return res
a76d5ba7ac43 pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28289
diff changeset
22 repo.__class__ = delayedlockrepo