start static method
void
start(
- 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");
}