failAllAndDispose method

void failAllAndDispose({
  1. String? disposeOp,
})

Fails all pending requests, optionally sends a dispose op, and kills the isolate.

Implementation

void failAllAndDispose({String? disposeOp}) {
  for (final completer in _pending.values) {
    if (!completer.isCompleted) {
      completer.completeError(StateError('IsolateRpcClient disposed'));
    }
  }
  _pending.clear();

  if (disposeOp != null && sendPort != null) {
    try {
      sendPort!.send({'id': -1, 'op': disposeOp});
    } catch (_) {}
  }

  isolate?.kill(priority: Isolate.immediate);
  receivePort.close();

  isolate = null;
  sendPort = null;
}