66using Microsoft . Extensions . Logging ;
77using Soenneker . Extensions . Double ;
88using Soenneker . Extensions . MethodInfo ;
9+ using Soenneker . Extensions . ValueTask ;
910using Soenneker . Utils . BackgroundQueue . Abstract ;
1011
1112namespace Soenneker . Utils . BackgroundQueue ;
@@ -55,11 +56,11 @@ public BackgroundQueue(IConfiguration config, ILogger<BackgroundQueue> logger, I
5556 _taskChannel = Channel . CreateBounded < Func < CancellationToken , Task > > ( options ) ;
5657 }
5758
58- public async ValueTask QueueValueTask ( Func < CancellationToken , ValueTask > workItem )
59+ public async ValueTask QueueValueTask ( Func < CancellationToken , ValueTask > workItem , CancellationToken cancellationToken = default )
5960 {
6061 // TODO: need to redo this, we're going to get too many warnings
6162
62- int count = await _informationUtil . IncrementValueTaskCounter ( ) . ConfigureAwait ( false ) ;
63+ int count = await _informationUtil . IncrementValueTaskCounter ( cancellationToken ) . ConfigureAwait ( false ) ;
6364
6465 if ( count > _queueWarning )
6566 {
@@ -70,12 +71,12 @@ public async ValueTask QueueValueTask(Func<CancellationToken, ValueTask> workIte
7071 if ( _log )
7172 _logger . LogDebug ( "Queuing ValueTask: {name}" , workItem . ToString ( ) ) ;
7273
73- await _valueTaskChannel . Writer . WriteAsync ( workItem ) . ConfigureAwait ( false ) ;
74+ await _valueTaskChannel . Writer . WriteAsync ( workItem , cancellationToken ) . NoSync ( ) ;
7475 }
7576
76- public async ValueTask QueueTask ( Func < CancellationToken , Task > workItem )
77+ public async ValueTask QueueTask ( Func < CancellationToken , Task > workItem , CancellationToken cancellationToken = default )
7778 {
78- int count = await _informationUtil . IncrementTaskCounter ( ) . ConfigureAwait ( false ) ;
79+ int count = await _informationUtil . IncrementTaskCounter ( cancellationToken ) . NoSync ( ) ;
7980
8081 if ( count > _queueWarning )
8182 {
@@ -86,15 +87,15 @@ public async ValueTask QueueTask(Func<CancellationToken, Task> workItem)
8687 if ( _log )
8788 _logger . LogDebug ( "Queuing Task: {name}" , workItem . Method . GetSignature ( ) ) ;
8889
89- await _taskChannel . Writer . WriteAsync ( workItem ) . ConfigureAwait ( false ) ;
90+ await _taskChannel . Writer . WriteAsync ( workItem , cancellationToken ) . NoSync ( ) ;
9091 }
9192
92- public ValueTask < Func < CancellationToken , ValueTask > > DequeueValueTask ( CancellationToken cancellationToken )
93+ public ValueTask < Func < CancellationToken , ValueTask > > DequeueValueTask ( CancellationToken cancellationToken = default )
9394 {
9495 return _valueTaskChannel . Reader . ReadAsync ( cancellationToken ) ;
9596 }
9697
97- public ValueTask < Func < CancellationToken , Task > > DequeueTask ( CancellationToken cancellationToken )
98+ public ValueTask < Func < CancellationToken , Task > > DequeueTask ( CancellationToken cancellationToken = default )
9899 {
99100 return _taskChannel . Reader . ReadAsync ( cancellationToken ) ;
100101 }
0 commit comments