Add a lock to deterministic_PRNG
#4455
Merged
+115
−15
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Part of #4451.
To reproduce:
pytest -k test_zero_contained_examples --parallel-threads 2
.Pushing this lock down to after the
hypothesis.core._hypothesis_global_random is None
check would in theory avoid the described issue, and reduce overhead to once per session instead of once per test. But pushing it down could create twoRandom
instances, one of which gets overwritten. This makes me nervous since it's possible for a thread to use the overwritten random before it gets overwritten, which may break determinism assumptions.