Browse Source

Potential timer fix!

pull/85/head
Sebastian Stehle 9 years ago
parent
commit
07359259f9
  1. 18
      src/Squidex.Infrastructure/Timers/CompletionTimer.cs
  2. 4
      tests/Squidex.Infrastructure.Tests/Timers/CompletionTimerTests.cs

18
src/Squidex.Infrastructure/Timers/CompletionTimer.cs

@ -52,7 +52,7 @@ namespace Squidex.Infrastructure.Timers
{
if (initialDelay > 0)
{
await WaitAsync(initialDelay);
await WaitAsync(initialDelay).ConfigureAwait(false);
}
while (requiresAtLeastOne == 2 || !disposeToken.IsCancellationRequested)
@ -61,11 +61,15 @@ namespace Squidex.Infrastructure.Timers
{
await callback(disposeToken.Token).ConfigureAwait(false);
}
catch (OperationCanceledException) { }
requiresAtLeastOne = 1;
catch (OperationCanceledException)
{
}
finally
{
requiresAtLeastOne = 1;
}
await WaitAsync(delay);
await WaitAsync(delay).ConfigureAwait(false);
}
}
@ -80,7 +84,9 @@ namespace Squidex.Infrastructure.Timers
await Task.Delay(intervall, cts.Token).ConfigureAwait(false);
}
}
catch (OperationCanceledException) { }
catch (OperationCanceledException)
{
}
}
}
}

4
tests/Squidex.Infrastructure.Tests/Timers/CompletionTimerTests.cs

@ -18,12 +18,12 @@ namespace Squidex.Infrastructure.Timers
{
var called = false;
var timer = new CompletionTimer(20000, ct =>
var timer = new CompletionTimer(2000, ct =>
{
called = true;
return TaskHelper.Done;
}, 20000);
}, 2000);
timer.Wakeup();
timer.Dispose();

Loading…
Cancel
Save