diff --git a/src/Infrastructure/BotSharp.Core/Infrastructures/DistributedLocker.cs b/src/Infrastructure/BotSharp.Core/Infrastructures/DistributedLocker.cs index 0a5a7cb8..0c20d983 100644 --- a/src/Infrastructure/BotSharp.Core/Infrastructures/DistributedLocker.cs +++ b/src/Infrastructure/BotSharp.Core/Infrastructures/DistributedLocker.cs @@ -12,7 +12,7 @@ public class DistributedLocker _settings = settings; } - public async Task Lock(string resource, Func action, int timeoutInSeconds = 30) + public async Task Lock(string resource, Func> action, int timeoutInSeconds = 30) { var timeout = TimeSpan.FromSeconds(timeoutInSeconds); @@ -20,14 +20,12 @@ public class DistributedLocker var @lock = new RedisDistributedLock(resource, connection.GetDatabase()); await using (var handle = await @lock.TryAcquireAsync(timeout)) { - if (handle != null) - { - await action(); - } - else + if (handle == null) { Serilog.Log.Logger.Error($"Acquire lock for {resource} failed due to after {timeout}s timeout."); } + + return await action(); } }