tests/lockdelay.py
author Arseniy Alekseyev <aalekseyev@janestreet.com>
Thu, 21 Dec 2023 20:30:03 +0000
changeset 51396 3f37d80d3ab4
parent 48875 6000f5b25c9b
permissions -rw-r--r--
revlog: add a C implementation of `headrevsdiff` Python implementation of `headrevsdiff` can be very slow in the worst case compared with the `heads` computation it replaces, since the latter is done in C. Even the average case of this Python implementation is still noticeable in the profiles. This patch makes the computation much much faster by doing it in C.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
d493d64757eb hg: obtain lock when creating share from pooled repo (issue5104)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     6
import os
d493d64757eb hg: obtain lock when creating share from pooled repo (issue5104)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     7
import time
d493d64757eb hg: obtain lock when creating share from pooled repo (issue5104)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     8
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 30068
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):
a76d5ba7ac43 pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28289
diff changeset
    11
    class delayedlockrepo(repo.__class__):
45444
f6c67bb4ca03 tests: update lockdelay.py to handle the `wait` argument
Pulkit Goyal <7895pulkit@gmail.com>
parents: 43076
diff changeset
    12
        def lock(self, wait=True):
30068
a76d5ba7ac43 pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28289
diff changeset
    13
            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
    14
            if delay:
a76d5ba7ac43 pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28289
diff changeset
    15
                time.sleep(delay)
45444
f6c67bb4ca03 tests: update lockdelay.py to handle the `wait` argument
Pulkit Goyal <7895pulkit@gmail.com>
parents: 43076
diff changeset
    16
            res = super(delayedlockrepo, self).lock(wait=wait)
30068
a76d5ba7ac43 pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28289
diff changeset
    17
            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
    18
            if delay:
a76d5ba7ac43 pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28289
diff changeset
    19
                time.sleep(delay)
a76d5ba7ac43 pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28289
diff changeset
    20
            return res
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 30068
diff changeset
    21
30068
a76d5ba7ac43 pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28289
diff changeset
    22
    repo.__class__ = delayedlockrepo