stockfishMain method

  1. @override
Future<int> stockfishMain(
  1. Function active
)
override

Implementation

@override
Future<int> stockfishMain(Function active) {
  final completer = Completer<int>();
  _mainSubscription = _mainPort.listen((message) {
    cleanUp(message is int ? message : 1);
    completer.complete(message is int ? message : 1);
  });
  _stdoutSubscription = _stdoutPort.listen((message) {
    if (message is String) {
      stdoutController.sink.add(message);
    } else {
      developer.log('The stdout isolate sent $message', name: 'Stockfish');
    }
  });
  compute(_spawnIsolates, [_mainPort.sendPort, _stdoutPort.sendPort]).then(
    (success) {
      if (success) {
        active();
      } else {
        completer.completeError('Unable to create Isolates');
        cleanUp(1);
      }
    },
    onError: (error) {
      developer.log('The init isolate encountered an error $error',
          name: 'Stockfish');
      completer.completeError(error);
      cleanUp(1);
    },
  );
  return completer.future;
}