MCPcopy Create free account
hub / github.com/tox-dev/filelock / _contention

Function _contention

tasks/benchmark.py:163–176  ·  view source on GitHub ↗
(root: Path)

Source from the content-addressed store, hash-verified

161
162
163def _contention(root: Path) -> list[Sample]:
164 samples: list[Sample] = []
165 for name, path in (("FileLock", root / "c-file.lock"), ("StrictSoftFileLock", root / "c-strict.lock")):
166 started = time.perf_counter()
167 workers = [Process(target=_hammer, args=(name, str(path))) for _ in range(_CONTENTION_PROCESSES)]
168 for worker in workers:
169 worker.start()
170 for worker in workers:
171 worker.join()
172 elapsed = time.perf_counter() - started
173 total = _CONTENTION_PROCESSES * _CONTENTION_ACQUISITIONS
174 per = elapsed * 1e3 / total
175 samples.append(Sample(f"contention {name} ({total} acquisitions)", per, per, "ms/acq"))
176 return samples
177
178
179def _hammer(backend: str, path: str) -> None:

Callers 1

mainFunction · 0.85

Calls 2

SampleClass · 0.85
joinMethod · 0.80

Tested by

no test coverage detected