Skip to content

Commit 4a6c409

Browse files
author
Paul Johnson
authored
Explicitly close release signal file. (#12057)
1 parent 4351ce6 commit 4a6c409

File tree

2 files changed

+19
-7
lines changed

2 files changed

+19
-7
lines changed

src/Umbraco.Infrastructure/Runtime/FileSystemMainDomLock.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@ public Task<bool> AcquireLockAsync(int millisecondsTimeout)
6868
}
6969

7070
public void CreateLockReleaseSignalFile() =>
71-
_ = File.Open(_releaseSignalFilePath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite | FileShare.Delete);
71+
File.Open(_releaseSignalFilePath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite | FileShare.Delete)
72+
.Close();
7273

7374
public void DeleteLockReleaseSignalFile() =>
7475
File.Delete(_releaseSignalFilePath);

tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Runtime/FileSystemMainDomLockTests.cs

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System.IO;
2+
using System.Threading;
23
using System.Threading.Tasks;
34
using Microsoft.Extensions.Logging;
45
using Microsoft.Extensions.Options;
@@ -44,13 +45,23 @@ public void SetUp()
4445
[TearDown]
4546
public void TearDown()
4647
{
47-
while (File.Exists(LockFilePath))
48-
{
49-
File.Delete(LockFilePath);
50-
}
51-
while (File.Exists(LockReleaseFilePath))
48+
CleanupTestFile(LockFilePath);
49+
CleanupTestFile(LockReleaseFilePath);
50+
}
51+
52+
private static void CleanupTestFile(string path)
53+
{
54+
for (var i = 0; i < 3; i++)
5255
{
53-
File.Delete(LockReleaseFilePath);
56+
try
57+
{
58+
File.Delete(path);
59+
return;
60+
}
61+
catch
62+
{
63+
Thread.Sleep(500 * (i + 1));
64+
}
5465
}
5566
}
5667

0 commit comments

Comments
 (0)