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.
When a ReusableTask continues from another ReusableTask we can
pass the StateMachineCache object directly as the continuation
to avoid creating an Action which points to the StateMachineCache.
This optimisation works for
ReusableTask -> ReusableTask
as well asReusableTask<T> -> ReusableTask
andReusableTask -> ReusableTask<T>
.Additionally, this makes a bunch of Cache objects a little bit smaller
as they don't have to hold an Action object.
BenchmarkDotNet=v0.13.1, OS=Windows 10.0.22631
AMD Ryzen 5 5600U with Radeon Graphics, 1 CPU, 12 logical and 6 physical cores
.NET SDK=8.0.300
[Host] : .NET 6.0.30 (6.0.3024.21525), X64 RyuJIT
DefaultJob : .NET 6.0.30 (6.0.3024.21525), X64 RyuJIT
Before
After