Fixed #6398 - probably fixed/worked-around by sorting #7348
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.
please review.
small-scale test has finished without error.
Deadlock occurs because
Thread A holds lock on row 1,5,8,9 and wants 20.
Thread B holds lock on 2,3,15,20,25 and wants 9.
this happens because the Hit Objects in Recorders are not ordered.
So Thread B can get a lock on row 20, and want to "warp back" to 9,
while Thread A holds row 9 and wants to advance to row 20.
Solution:
Ordering ensures Thread B waits for lock release on row 9, without having row 20 already locked.