Skip to content

Commit 7347195

Browse files
Removing unnecessary lock and boolean field
1 parent 89fe2f2 commit 7347195

File tree

2 files changed

+9
-28
lines changed

2 files changed

+9
-28
lines changed

src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/Diagnostics/RazorDiagnosticsPublisher.TestAccessor.cs

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,23 +20,15 @@ public bool IsWaitingToClearClosedDocuments
2020
{
2121
get
2222
{
23-
lock (instance._documentClosedGate)
24-
{
25-
return instance._waitingToClearClosedDocuments;
26-
}
23+
return !instance._clearClosedDocumentsTask.IsCompleted;
2724
}
2825
}
2926

30-
public async Task WaitForClearClosedDocumentsAsync()
27+
public Task WaitForClearClosedDocumentsAsync()
3128
{
32-
Task task;
33-
34-
lock (instance._documentClosedGate)
35-
{
36-
task = instance._clearClosedDocumentsTask;
37-
}
38-
39-
await task.ConfigureAwait(false);
29+
#pragma warning disable VSTHRD003 // Avoid awaiting foreign Tasks
30+
return instance._clearClosedDocumentsTask;
31+
#pragma warning restore VSTHRD003 // Avoid awaiting foreign Tasks
4032
}
4133

4234
public Task WaitForDiagnosticsToPublishAsync()

src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/Diagnostics/RazorDiagnosticsPublisher.cs

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,7 @@ private readonly record struct PublishedDiagnostics(IReadOnlyList<RazorDiagnosti
4343
private readonly AsyncBatchingWorkQueue<IDocumentSnapshot> _workQueue;
4444
private readonly Dictionary<string, PublishedDiagnostics> _publishedDiagnostics;
4545

46-
private readonly object _documentClosedGate = new();
4746
private Task _clearClosedDocumentsTask = Task.CompletedTask;
48-
private bool _waitingToClearClosedDocuments;
4947

5048
public RazorDiagnosticsPublisher(
5149
IProjectSnapshotManager projectManager,
@@ -204,27 +202,18 @@ .. csharpDiagnostics ?? []
204202

205203
private void StartDelayToClearDocuments()
206204
{
207-
lock (_documentClosedGate)
205+
if (!_clearClosedDocumentsTask.IsCompleted)
208206
{
209-
if (_waitingToClearClosedDocuments)
210-
{
211-
return;
212-
}
213-
214-
_clearClosedDocumentsTask = ClearClosedDocumentsAfterDelayAsync();
215-
_waitingToClearClosedDocuments = true;
207+
return;
216208
}
217209

210+
_clearClosedDocumentsTask = ClearClosedDocumentsAfterDelayAsync();
211+
218212
async Task ClearClosedDocumentsAfterDelayAsync()
219213
{
220214
await Task.Delay(s_clearClosedDocumentsDelay, _disposeTokenSource.Token).ConfigureAwait(false);
221215

222216
ClearClosedDocuments();
223-
224-
lock (_documentClosedGate)
225-
{
226-
_waitingToClearClosedDocuments = false;
227-
}
228217
}
229218
}
230219

0 commit comments

Comments
 (0)