activateOnCurrentIsolate<TFromCaller> method

void activateOnCurrentIsolate<TFromCaller>(
  1. void messageHandler(
    1. TFromCaller message
    ),
  2. void cancel(
    1. CancelMessage cancelMessage
    )
)

Activates the current configuration on the current isolate.

In the entry-point of the isolate this method should be called to set up the SendPort and ReceivePort.

Implementation

void activateOnCurrentIsolate<TFromCaller>(
  void Function(TFromCaller message) messageHandler,
  void Function(CancelMessage cancelMessage) cancel,
) {
  final fromCaller = ReceivePort();
  final toIsolate = fromCaller.sendPort;

  late final StreamSubscription subscription;
  subscription = fromCaller.listen((message) {
    if (message is CancelMessage) {
      subscription.cancel();
      cancel(message);
    } else if (message is TFromCaller) {
      messageHandler(message);
    }
  });

  toCaller.send(toIsolate);
}