This repository has been archived by the owner on Jan 22, 2025. It is now read-only.
Remove fn slot_deltas()
from StatusCache
#26931
Merged
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.
Problem
The
slot_deltas()
androot_slot_deltas()
functions have different behavior w.r.t. not-found slots. They probably shouldn't.Please see #26170 (comment) for more context.
Summary of Changes
Remove
fn slot_deltas()
OLD SUMMARY BELOW
Summary of Changes
Add a new private function that wraps the impl of both
slot_deltas()
androot_slot_deltas()
. Now both have the same behavior (to create a unique entry per missing slot, instead of sharing a single 'empty').Some benchmarks:
before:
after:
The only change is that 'empty'/missing slots are now more expensive, since a new
Status
is created for each one. In practice I cannot imagine that roots have zero transactions, therefore this pathological case should never occur.