diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index d2c9ba606..7b898a0cf 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -4,10 +4,10 @@
https://github.com/danielgerlag/workflow-core/blob/master/LICENSE.md
git
https://github.com/danielgerlag/workflow-core.git
- 3.17.0
- 3.17.0.0
- 3.17.0.0
+ 3.17.1
+ 3.17.1.0
+ 3.17.1.0
https://github.com/danielgerlag/workflow-core/raw/master/src/logo.png
- 3.17.0
+ 3.17.1
diff --git a/src/providers/WorkflowCore.Providers.AWS/Services/DynamoLockProvider.cs b/src/providers/WorkflowCore.Providers.AWS/Services/DynamoLockProvider.cs
index 0863f1393..57e6387a0 100644
--- a/src/providers/WorkflowCore.Providers.AWS/Services/DynamoLockProvider.cs
+++ b/src/providers/WorkflowCore.Providers.AWS/Services/DynamoLockProvider.cs
@@ -1,4 +1,4 @@
-using Amazon.DynamoDBv2;
+using Amazon.DynamoDBv2;
using Amazon.DynamoDBv2.Model;
using Amazon.Runtime;
using Microsoft.Extensions.Logging;
@@ -67,7 +67,15 @@ public async Task AcquireLock(string Id, CancellationToken cancellationTok
if (response.HttpStatusCode == System.Net.HttpStatusCode.OK)
{
- _localLocks.Add(Id);
+ _mutex.WaitOne();
+ try
+ {
+ _localLocks.Add(Id);
+ }
+ finally
+ {
+ _mutex.Set();
+ }
return true;
}
}
@@ -147,6 +155,9 @@ private async void SendHeartbeat()
{
foreach (var item in _localLocks.ToArray())
{
+ if (string.IsNullOrEmpty(item))
+ continue;
+
var req = new PutItemRequest
{
TableName = _tableName,