protected override void HandleDisconnectRequestAsync(IRequestResponder <DisconnectArguments> responder) { // Set our exiting status Exiting = true; // Loop for each thread foreach (var threadStateKeyValuePair in ThreadStates) { // Release the execution lock on this thread state. // NOTE: This already happens when setting exiting status, // but only if the thread is currently stepping/continuing, // and not paused. This will allow it to continue if stopped. threadStateKeyValuePair.Value.Semaphore.Release(); } // Set our response to the disconnect request. responder.SetResponse(new DisconnectResponse()); Protocol.SendEvent(new TerminatedEvent()); Protocol.SendEvent(new ExitedEvent(0)); _terminatedTcs.TrySetResult(null); // If we have an event, invoke it OnDebuggerDisconnect?.Invoke(this); }
private void DebugAdapter_OnDebuggerDisconnect(MeadowSolidityDebugAdapter sender) { TeardownRpcDebuggingHook(sender); OnDebuggerDisconnect?.Invoke(); }