diff --git a/src/Squidex.Infrastructure/Timers/CompletionTimer.cs b/src/Squidex.Infrastructure/Timers/CompletionTimer.cs index eec58576c..62504ce59 100644 --- a/src/Squidex.Infrastructure/Timers/CompletionTimer.cs +++ b/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) + { + } } } } diff --git a/tests/Squidex.Infrastructure.Tests/Timers/CompletionTimerTests.cs b/tests/Squidex.Infrastructure.Tests/Timers/CompletionTimerTests.cs index aa7f228c0..01f7c35e5 100644 --- a/tests/Squidex.Infrastructure.Tests/Timers/CompletionTimerTests.cs +++ b/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();