Skip to content

Commit

Permalink
Code cleanup.
Browse files Browse the repository at this point in the history
  • Loading branch information
sharpninja committed Sep 15, 2021
1 parent e8a4d9f commit 6ba9c53
Showing 1 changed file with 23 additions and 6 deletions.
29 changes: 23 additions & 6 deletions PersistentWorkQueue/WorkQueue.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ namespace PersistentWorkQueue
{
public class WorkQueue<TRequest> : IDisposable
{
private ConcurrentQueue<RequestWrapper<TRequest>> _requestQueue
= new ConcurrentQueue<RequestWrapper<TRequest>>();
private readonly ConcurrentQueue<RequestWrapper<TRequest>> _requestQueue
= new ();

private Timer? _timer;
private bool disposedValue;
Expand Down Expand Up @@ -107,7 +107,12 @@ public void StopTimer()
_timer = null;
}

public IEnumerable<RequestWrapper<TRequest>> Enqueue(IEnumerable<TRequest> requests, CancellationToken token = default)
public IEnumerable<RequestWrapper<TRequest>> Enqueue(IEnumerable<TRequest> requests)
{
return Enqueue(requests, default);
}

public IEnumerable<RequestWrapper<TRequest>> Enqueue(IEnumerable<TRequest> requests, CancellationToken? token)
{
List<RequestWrapper<TRequest>> newItems = new();

Expand All @@ -131,7 +136,12 @@ public IEnumerable<RequestWrapper<TRequest>> Enqueue(IEnumerable<TRequest> reque
return newItems;
}

public RequestWrapper<TRequest> Enqueue(TRequest request, CancellationToken token = default)
public RequestWrapper<TRequest> Enqueue(TRequest request)
{
return Enqueue(request, default);
}

public RequestWrapper<TRequest> Enqueue(TRequest request, CancellationToken? token)
{
RequestWrapper<TRequest> wrapper = new(request);

Expand All @@ -153,7 +163,7 @@ public bool DoWork()
return DoWork(default);
}

public bool DoWork(CancellationToken token)
public bool DoWork(CancellationToken? token)
{
var workList = _requestQueue.Where(w => !w.IsCanceled).ToList();
try
Expand All @@ -162,7 +172,14 @@ public bool DoWork(CancellationToken token)

if (Options.FireAndForget)
{
Task.Run(() => PerformActions(workList), token);
if(token is CancellationToken tk)
{
Task.Run((Action)(() => PerformActions(workList)), tk);
}
else
{
Task.Run((Action)(() => PerformActions(workList)));
}
}
else
{
Expand Down

0 comments on commit 6ba9c53

Please sign in to comment.