1.x: compact MultipleAssignment- and Serial-Subscriptions #4328
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 PR reduces the allocation in
MultipleAssignmentSubscription
andSerialSubscription
by introducing a shared, compact underlying containerSequentialSubscription
.I've updated
Worker.schedulePeriodically
to use it directly.In addition, there is a behavior change with
MultipleAssignmentSubscription
: it no longer retains the lastSubscription
as it was likely to cause retention problems (and otherwise didn't make sense to me).The
SequentialSubscription
feature weak versions of the mutation methods that don't retry if there was a concurrent mutation: for some operations, not winning such races is fine./cc @JakeWharton @davidmoten @artem-zinnatullin