Skip to content

Commit

Permalink
FIX dead lock
Browse files Browse the repository at this point in the history
  • Loading branch information
CppCXY committed May 24, 2024
1 parent a6a00f1 commit 7089580
Showing 1 changed file with 16 additions and 19 deletions.
35 changes: 16 additions & 19 deletions EmmyLua.LanguageServer/Server/ServerContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -167,18 +167,7 @@ private void PushWorkspaceDiagnostics()
{
CancellationTokenSource?.Cancel();
CancellationTokenSource = new CancellationTokenSource();
_ = Task.Run(async () =>
{
LockSlim.EnterReadLock();
try
{
await PushWorkspaceDiagnosticsAsync(CancellationTokenSource.Token);
}
finally
{
LockSlim.ExitReadLock();
}
},
_ = Task.Run(async () => { await PushWorkspaceDiagnosticsAsync(CancellationTokenSource.Token); },
CancellationTokenSource.Token);
}

Expand All @@ -204,16 +193,24 @@ private async Task PushWorkspaceDiagnosticsAsync(CancellationToken cancellationT
var count = Interlocked.Increment(ref currentCount);
Monitor.OnDiagnosticChecking(count, diagnosticCount);
// ReSharper disable once AccessToDisposedClosure
var diagnostics = LuaWorkspace.Compilation.GetDiagnostics(document.Id, context.Value!);
Server.TextDocument.PublishDiagnostics(new PublishDiagnosticsParams()
LockSlim.EnterReadLock();
try
{
Diagnostics = Container.From(diagnostics.Select(it => it.ToLspDiagnostic(document))),
Uri = document.Uri,
});
// ReSharper disable once AccessToDisposedClosure
var diagnostics = LuaWorkspace.Compilation.GetDiagnostics(document.Id, context.Value!);
Server.TextDocument.PublishDiagnostics(new PublishDiagnosticsParams()
{
Diagnostics = Container.From(diagnostics.Select(it => it.ToLspDiagnostic(document))),
Uri = document.Uri,
});
}
finally
{
LockSlim.ExitReadLock();
}
}, cancellationToken));
}

await Task.WhenAll(tasks);
}
finally
Expand Down

0 comments on commit 7089580

Please sign in to comment.