stockfishMain method
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;
}