From d7fd586a25f83d030b127503e3f2362e55a7c8d9 Mon Sep 17 00:00:00 2001 From: Shay Rojansky Date: Sun, 26 Apr 2020 14:52:45 +0200 Subject: [PATCH] Slightly simplify execution strategy logic --- src/EFCore/Storage/ExecutionStrategy.cs | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/EFCore/Storage/ExecutionStrategy.cs b/src/EFCore/Storage/ExecutionStrategy.cs index a3171a243d0..cfc4685ee9d 100644 --- a/src/EFCore/Storage/ExecutionStrategy.cs +++ b/src/EFCore/Storage/ExecutionStrategy.cs @@ -166,7 +166,6 @@ private TResult ExecuteImplementation( { while (true) { - TimeSpan? delay; try { Suspended = true; @@ -194,7 +193,7 @@ private TResult ExecuteImplementation( ExceptionsEncountered.Add(ex); - delay = GetNextDelay(ex); + var delay = GetNextDelay(ex); if (delay == null) { throw new RetryLimitExceededException(CoreStrings.RetryLimitExceeded(MaxRetryCount, GetType().Name), ex); @@ -203,10 +202,10 @@ private TResult ExecuteImplementation( Dependencies.Logger.ExecutionStrategyRetrying(ExceptionsEncountered, delay.Value, async: true); OnRetry(); - } - using var waitEvent = new ManualResetEventSlim(false); - waitEvent.WaitHandle.WaitOne(delay.Value); + using var waitEvent = new ManualResetEventSlim(false); + waitEvent.WaitHandle.WaitOne(delay.Value); + } } } @@ -259,7 +258,6 @@ private async Task ExecuteImplementationAsync( { cancellationToken.ThrowIfCancellationRequested(); - TimeSpan? delay; try { Suspended = true; @@ -287,7 +285,7 @@ private async Task ExecuteImplementationAsync( ExceptionsEncountered.Add(ex); - delay = GetNextDelay(ex); + var delay = GetNextDelay(ex); if (delay == null) { throw new RetryLimitExceededException(CoreStrings.RetryLimitExceeded(MaxRetryCount, GetType().Name), ex); @@ -296,9 +294,9 @@ private async Task ExecuteImplementationAsync( Dependencies.Logger.ExecutionStrategyRetrying(ExceptionsEncountered, delay.Value, async: true); OnRetry(); - } - await Task.Delay(delay.Value, cancellationToken); + await Task.Delay(delay.Value, cancellationToken); + } } }