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.
Trie prefetching with a
state.subfetcher
previously relied on a pattern of {lock, set tasks, unlock, send void onwake
channel}, which I've collapsed into a single channel send. This allows the lock to be removed entirely, which has an added benefit of avoiding future code forgetting to obtain it.The new
tasks
channel is never closed, just like the oldwake
one wasn't. If that needs to be addressed I think it's best done in another PR.I know that #30629 made significant allocation improvements and I don't want to inadvertently make things worse, but I can't find the benchmarks that were used there. Happy to run them if someone can please point me in the right direction.
See Go Blog: Share Memory By Communicating for background.