spawnRunner function

Future<Runner> spawnRunner(
  1. RunnerBuilder builder
)

Implementation

Future<Runner> spawnRunner(RunnerBuilder builder) async {
  final spawner = () => IsolateRunner.build(builder);
  Runner result;
  if (builder.poolSize == 1) {
    /// Create a single runner
    result = await spawner();
  } else if (builder.poolSize > 1) {
    result = await LoadBalancer.create(builder.poolSize, spawner);
  } else {
    throw 'Invalid runner configuration.  Pool size must be at least 1';
  }

  if (builder.autoCloseChildren) {
    result.closeWhenParentIsolateExits();
  }
  return result;
}