Add coarse grained lock around BSP requests to avoid deadlocks #3243
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.
Fixes #3100, which for some reason is happening frequently enough on my laptop to really hamper my productivity. With a version of Mill built from this PR, the problem seems to have gone away.
We don't really have a strong concurrency model for what's meant to happen when multiple Mill commands are being evaluated at once, and trying to come up with one is a complex task that I don't think is worth the effort. Bazel works fine with a coarse-grained lock even for huge codebases and organizations, so this should do for Mill for now.
Pull request: #3243