6
6
using Microsoft . Extensions . Logging ;
7
7
using Soenneker . Extensions . Double ;
8
8
using Soenneker . Extensions . MethodInfo ;
9
+ using Soenneker . Extensions . ValueTask ;
9
10
using Soenneker . Utils . BackgroundQueue . Abstract ;
10
11
11
12
namespace Soenneker . Utils . BackgroundQueue ;
@@ -55,11 +56,11 @@ public BackgroundQueue(IConfiguration config, ILogger<BackgroundQueue> logger, I
55
56
_taskChannel = Channel . CreateBounded < Func < CancellationToken , Task > > ( options ) ;
56
57
}
57
58
58
- public async ValueTask QueueValueTask ( Func < CancellationToken , ValueTask > workItem )
59
+ public async ValueTask QueueValueTask ( Func < CancellationToken , ValueTask > workItem , CancellationToken cancellationToken = default )
59
60
{
60
61
// TODO: need to redo this, we're going to get too many warnings
61
62
62
- int count = await _informationUtil . IncrementValueTaskCounter ( ) . ConfigureAwait ( false ) ;
63
+ int count = await _informationUtil . IncrementValueTaskCounter ( cancellationToken ) . ConfigureAwait ( false ) ;
63
64
64
65
if ( count > _queueWarning )
65
66
{
@@ -70,12 +71,12 @@ public async ValueTask QueueValueTask(Func<CancellationToken, ValueTask> workIte
70
71
if ( _log )
71
72
_logger . LogDebug ( "Queuing ValueTask: {name}" , workItem . ToString ( ) ) ;
72
73
73
- await _valueTaskChannel . Writer . WriteAsync ( workItem ) . ConfigureAwait ( false ) ;
74
+ await _valueTaskChannel . Writer . WriteAsync ( workItem , cancellationToken ) . NoSync ( ) ;
74
75
}
75
76
76
- public async ValueTask QueueTask ( Func < CancellationToken , Task > workItem )
77
+ public async ValueTask QueueTask ( Func < CancellationToken , Task > workItem , CancellationToken cancellationToken = default )
77
78
{
78
- int count = await _informationUtil . IncrementTaskCounter ( ) . ConfigureAwait ( false ) ;
79
+ int count = await _informationUtil . IncrementTaskCounter ( cancellationToken ) . NoSync ( ) ;
79
80
80
81
if ( count > _queueWarning )
81
82
{
@@ -86,15 +87,15 @@ public async ValueTask QueueTask(Func<CancellationToken, Task> workItem)
86
87
if ( _log )
87
88
_logger . LogDebug ( "Queuing Task: {name}" , workItem . Method . GetSignature ( ) ) ;
88
89
89
- await _taskChannel . Writer . WriteAsync ( workItem ) . ConfigureAwait ( false ) ;
90
+ await _taskChannel . Writer . WriteAsync ( workItem , cancellationToken ) . NoSync ( ) ;
90
91
}
91
92
92
- public ValueTask < Func < CancellationToken , ValueTask > > DequeueValueTask ( CancellationToken cancellationToken )
93
+ public ValueTask < Func < CancellationToken , ValueTask > > DequeueValueTask ( CancellationToken cancellationToken = default )
93
94
{
94
95
return _valueTaskChannel . Reader . ReadAsync ( cancellationToken ) ;
95
96
}
96
97
97
- public ValueTask < Func < CancellationToken , Task > > DequeueTask ( CancellationToken cancellationToken )
98
+ public ValueTask < Func < CancellationToken , Task > > DequeueTask ( CancellationToken cancellationToken = default )
98
99
{
99
100
return _taskChannel . Reader . ReadAsync ( cancellationToken ) ;
100
101
}
0 commit comments