in src/csharp/MonoDebugSession.cs [431:461]
public override void Disconnect(Response response, dynamic args)
{
if (_attachMode) {
lock (_lock) {
if (_session != null) {
_debuggeeExecuting = true;
_breakpoints.Clear();
_session.Breakpoints.Clear();
_session.Continue();
_session = null;
}
}
} else {
// Let's not leave dead Mono processes behind...
if (_process != null) {
_process.Kill();
_process = null;
} else {
PauseDebugger();
DebuggerKill();
while (!_debuggeeKilled) {
System.Threading.Thread.Sleep(10);
}
}
}
SendResponse(response);
}