|
22 | 22 | using System.Linq;
|
23 | 23 | using System.Threading;
|
24 | 24 | using Hangfire.Annotations;
|
| 25 | +using Hangfire.Common; |
25 | 26 | using Hangfire.Storage;
|
26 | 27 |
|
27 | 28 | // ReSharper disable RedundantAnonymousTypePropertyName
|
@@ -124,7 +125,8 @@ private SqlServerTimeoutJob DequeueUsingSlidingInvisibilityTimeout(string[] queu
|
124 | 125 | var queuesString = String.Join("_", queues.OrderBy(static x => x));
|
125 | 126 | var resource = Tuple.Create(_storage, queuesString);
|
126 | 127 |
|
127 |
| - var waitArray = GetWaitArrayForQueueSignals(_storage, queues, cancellationToken); |
| 128 | + using var cancellationEvent = cancellationToken.GetCancellationEvent(); |
| 129 | + var waitArray = GetWaitArrayForQueueSignals(_storage, queues, cancellationEvent); |
128 | 130 |
|
129 | 131 | SemaphoreSlim semaphore = null;
|
130 | 132 |
|
@@ -221,7 +223,8 @@ private SqlServerTransactionJob DequeueUsingTransaction(string[] queues, Cancell
|
221 | 223 | ? _options.QueuePollInterval
|
222 | 224 | : TimeSpan.FromSeconds(1);
|
223 | 225 |
|
224 |
| - var waitArray = GetWaitArrayForQueueSignals(_storage, queues, cancellationToken); |
| 226 | + using var cancellationEvent = cancellationToken.GetCancellationEvent(); |
| 227 | + var waitArray = GetWaitArrayForQueueSignals(_storage, queues, cancellationEvent); |
225 | 228 |
|
226 | 229 | while (!cancellationToken.IsCancellationRequested)
|
227 | 230 | {
|
@@ -305,11 +308,11 @@ private static DbCommand CreateTransactionalFetchCommand(
|
305 | 308 | .AddExpandedParameter("@queues", queues, DbType.String);
|
306 | 309 | }
|
307 | 310 |
|
308 |
| - private static WaitHandle[] GetWaitArrayForQueueSignals(SqlServerStorage storage, string[] queues, CancellationToken cancellationToken) |
| 311 | + private static WaitHandle[] GetWaitArrayForQueueSignals(SqlServerStorage storage, string[] queues, CancellationTokenExtentions.CancellationEvent cancellationEvent) |
309 | 312 | {
|
310 | 313 | var waitList = new List<WaitHandle>(capacity: queues.Length + 1)
|
311 | 314 | {
|
312 |
| - cancellationToken.WaitHandle |
| 315 | + cancellationEvent.WaitHandle |
313 | 316 | };
|
314 | 317 |
|
315 | 318 | foreach (var queue in queues)
|
|
0 commit comments