stop method

Future<void> stop()

Stops the subprocess if running.

Implementation

Future<void> stop() async {
  final process = _process;
  final session = _ptySession;
  if (process == null && session == null) {
    return;
  }

  await _stdoutSub?.cancel();
  await _stderrSub?.cancel();
  await _exitSub?.cancel();
  await _ptySessionSub?.cancel();
  _stdoutSub = null;
  _stderrSub = null;
  _exitSub = null;
  _ptySessionSub = null;

  process?.kill(ProcessSignal.sigterm);
  session?.close();
  _process = null;
  _ptySession = null;
  _running = false;
  _markDirty();
}