Skip to content

Commit bebe905

Browse files
committed
Fixed regression
1 parent 0555637 commit bebe905

File tree

3 files changed

+5
-3
lines changed

3 files changed

+5
-3
lines changed

src/DotNext.Threading/Threading/CancellationTokenMultiplexer.CTS.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace DotNext.Threading;
44

55
partial class CancellationTokenMultiplexer
66
{
7-
private sealed class PooledCancellationTokenSource : LinkedCancellationTokenSource
7+
private sealed class PooledCancellationTokenSource : LinkedCancellationTokenSource, IResettable
88
{
99
private const int Capacity = 3;
1010
private (CancellationTokenRegistration, CancellationTokenRegistration, CancellationTokenRegistration) inlineList;
@@ -56,8 +56,9 @@ public ref CancellationTokenRegistration this[int index]
5656
}
5757
}
5858

59-
public void Clear()
59+
public void Reset()
6060
{
61+
tokenCount = 0;
6162
inlineList = default;
6263
extraTokens?.Clear();
6364
}

src/DotNext.Threading/Threading/CancellationTokenMultiplexer.Scope.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ private static async ValueTask ReturnAsync(CancellationTokenMultiplexer multiple
111111

112112
private static void Return(CancellationTokenMultiplexer multiplexer, PooledCancellationTokenSource source)
113113
{
114-
source.Clear();
114+
source.Reset();
115115
if (source.IsCancellationRequested)
116116
{
117117
source.Dispose();

src/DotNext.Threading/Threading/CancellationTokenMultiplexer.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ private PooledCancellationTokenSource Rent()
8585
private PooledCancellationTokenSource Rent(ReadOnlySpan<CancellationToken> tokens)
8686
{
8787
var source = Rent();
88+
Debug.Assert(source.Count is 0);
8889

8990
foreach (var token in tokens)
9091
{

0 commit comments

Comments
 (0)