dispose method

Future<void> dispose()

Implementation

Future<void> dispose() async {
  if (_sendPort != null) {
    _sendPort!.send(
      const IsolateRequest(
        id: -1,
        command: IsolateCommand.shutdown,
        executable: '',
      ),
    );
  }

  for (final completer in _pending.values) {
    if (!completer.isCompleted) {
      completer.completeError(
        StateError('IsolateRunner disposed while request was pending'),
      );
    }
  }
  _pending.clear();

  _receivePort?.close();
  _isolate?.kill(priority: Isolate.beforeNextEvent);
  _isolate = null;
  _sendPort = null;
  _receivePort = null;
}