Skip to content

Commit 146926d

Browse files
committed
Исключение, когда поток машины разрегистрирован в отладчике
1 parent dd9eebd commit 146926d

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

src/OneScript.DebugServices/DefaultDebugController.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,16 @@ public void Init()
5353

5454
private void ThreadManagerOnThreadStopped(object sender, ThreadStoppedEventArgs e)
5555
{
56-
var token = _threadManager.GetTokenForThread(e.ThreadId);
56+
MachineWaitToken token;
57+
try
58+
{
59+
token = _threadManager.GetTokenForThread(e.ThreadId);
60+
}
61+
catch (ArgumentOutOfRangeException)
62+
{
63+
return;
64+
}
65+
5766
token.Reset();
5867

5968
_callbackService.ThreadStoppedEx(e.ThreadId, ConvertStopReason(e.StopReason), e.ErrorMessage);

src/OneScript.DebugServices/ThreadManager.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,12 @@ public class ThreadManager : IDisposable
2020

2121
public MachineWaitToken GetTokenForThread(int threadId)
2222
{
23-
return _machinesOnThreads[threadId];
23+
if (_machinesOnThreads.TryGetValue(threadId, out var value))
24+
{
25+
return value;
26+
}
27+
28+
throw new ArgumentOutOfRangeException($"Thread {threadId} is unregistered");
2429
}
2530

2631
public MachineWaitToken GetTokenForCurrentThread()

0 commit comments

Comments
 (0)