dispose method

Future<void> dispose()

Implementation

Future<void> dispose() async {
  if (null == _initializeComp) {
    _isDisposed = true;
    return;
  }

  _isDisposed = true;

  // Ensure initialization is finished.
  await _initialize();

  await _stdinStreamProxy.dispose();

  if (isIdle) {
    (await _requestPort).send(const _RequestExit());
    await _reqExitComp.future;
  } else {
    _isolate.kill(priority: Isolate.immediate);
    _reqExitComp.complete();
  }

  _responseReceiver.close();
}