@@ -22,39 +22,13 @@ partial class CancellationTokenMultiplexer
2222
2323 internal Scope ( CancellationTokenMultiplexer multiplexer , ReadOnlySpan < CancellationToken > tokens )
2424 {
25- switch ( tokens )
26- {
27- case [ ] :
28- source = null ;
29- multiplexerOrToken = InlineToken ( new ( canceled : false ) ) ;
30- break ;
31- case [ var token ] :
32- source = null ;
33- multiplexerOrToken = InlineToken ( token ) ;
34- break ;
35- case [ var token1 , var token2 ] :
36- source = null ;
37- if ( ! token1 . CanBeCanceled || token1 == token2 )
38- {
39- multiplexerOrToken = InlineToken ( token2 ) ;
40- }
41- else if ( ! token2 . CanBeCanceled )
42- {
43- multiplexerOrToken = InlineToken ( token1 ) ;
44- }
45- else
46- {
47- goto default ;
48- }
49-
50- break ;
51- default :
52- multiplexerOrToken = new ( multiplexer ) ;
53- source = multiplexer . Rent ( tokens ) ;
54- break ;
55- }
25+ multiplexerOrToken = new ( multiplexer ) ;
26+ source = multiplexer . Rent ( tokens ) ;
5627 }
5728
29+ internal Scope ( CancellationToken token )
30+ => multiplexerOrToken = InlineToken ( token ) ;
31+
5832 private static ValueTuple < object > InlineToken ( CancellationToken token )
5933 => CanInlineToken ? Unsafe . BitCast < CancellationToken , ValueTuple < object > > ( token ) : new ( token ) ;
6034
@@ -79,11 +53,11 @@ private static CancellationToken GetToken(ValueTuple<object> value)
7953 /// <inheritdoc/>
8054 public void Dispose ( )
8155 {
82- if ( source ? . Count is { } count )
56+ if ( source is not null )
8357 {
8458 Debug . Assert ( multiplexerOrToken . Item1 is CancellationTokenMultiplexer ) ;
8559
86- for ( var i = 0 ; i < count ; i ++ )
60+ for ( var i = 0 ; i < source . Count ; i ++ )
8761 {
8862 source [ i ] . Dispose ( ) ;
8963 }
@@ -101,7 +75,7 @@ public ValueTask DisposeAsync()
10175
10276 private static async ValueTask ReturnAsync ( CancellationTokenMultiplexer multiplexer , PooledCancellationTokenSource source )
10377 {
104- for ( int i = 0 , count = source . Count ; i < count ; i ++ )
78+ for ( var i = 0 ; i < source . Count ; i ++ )
10579 {
10680 await source [ i ] . DisposeAsync ( ) . ConfigureAwait ( false ) ;
10781 }
0 commit comments