start static method

void start(
  1. HandshakeMessage handshake
)

Starts a new local worker that waits for incoming tasks. A SendPort must be provided via the HandshakeMessage

Implementation

static void start(HandshakeMessage handshake) async {
  Logger.root.level = Level.INFO;
  Logger.root.onRecord.listen((record) {
    print(
        '${record.time.toUtc()}/${record.level.name}/${record.loggerName}: ${record.message}');
  });
  final Logger log = Logger("dsbuild/LocalWorker");

  LocalWorker worker = LocalWorker(ReceivePort(), handshake.tx);
  log.finer("Worker started.");
  handshake.tx.send(HandshakeMessage(worker._rx.sendPort));
  await worker._rx.transform(
      StreamTransformer.fromHandlers(handleData: (data, sink) async {
    worker.send(await data.run(worker));
    sink.add(data);
  })).last;
  log.finer("Worker shutting down");
}