Skip to content

Commit 20190d3

Browse files
author
Martin Lercher
committed
HeisenBugFix - ObjectDisposedException on CancellationTokenSource
1 parent 2d3e9de commit 20190d3

File tree

1 file changed

+2
-4
lines changed

1 file changed

+2
-4
lines changed

src/JsonRpc/ProcessScheduler.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public class ProcessScheduler : IScheduler
1010
{
1111
private readonly BlockingCollection<(RequestProcessType type, Func<Task> request)> _queue;
1212
private readonly CancellationTokenSource _cancel;
13-
private Thread _queueThread;
13+
private readonly Thread _queueThread;
1414

1515
public ProcessScheduler()
1616
{
@@ -47,7 +47,6 @@ private void ProcessRequestQueue()
4747
{
4848
while (true)
4949
{
50-
if (_queueThread == null) return;
5150
if (_queue.TryTake(out var item, Timeout.Infinite, token))
5251
{
5352
var (type, request) = item;
@@ -84,9 +83,8 @@ private void ProcessRequestQueue()
8483

8584
public void Dispose()
8685
{
87-
if (_queueThread == null) return;
88-
_queueThread = null;
8986
_cancel.Cancel();
87+
_queueThread.Join();
9088
_cancel.Dispose();
9189
}
9290
}

0 commit comments

Comments
 (0)