startLocalWorker method

Future<WorkerHandle> startLocalWorker()

Start a new local worker.

Implementation

Future<WorkerHandle> startLocalWorker() async {
  ReceivePort port = ReceivePort();
  StreamQueue rx = StreamQueue(port);
  Isolate workerIsolate = await Isolate.spawn(
      LocalWorker.start, HandshakeMessage(port.sendPort),
      debugName: "${workers.length}".padLeft(3, '0'));
  HandshakeMessage handshake = await rx.next as HandshakeMessage;
  WorkerHandle handle = WorkerHandle(rx, handshake.tx);
  workers.add(handle);
  localIsolates.add(workerIsolate);
  _log.finer("Worker ${workers.length} handshake.");
  return handle;
}