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.
This is essentially a regression from #3160.
I'm not really sure under which circumstances, but it is hypothetically possible for
sectors_metadata.read().await
inplot_single_sector
to yield to executor after already reserving theRwLock
acquisition slot, such that whensectors_metadata.write().await
is called inprocess_plotting_result
after #3160 just hangs forever.Essentially an issue of a similar nature to #3041, which is counter-intuitive because it behaves differently from synchronous counterparts in standard library and
parking_lot
.The solution is to allow these to run
process_plotting_result
concurrently with everything else, which also has added benefit of making some progress for plotting elsewhere while writes inprocess_plotting_result
are happening.This is a less hacky version that should help avoiding similar issues in the future if/when we do further refactoring.
Code contributor checklist: