batchStreamSync method

BatchStream batchStreamSync({
  1. int batchRows = 65536,
  2. int capacity = 2,
  3. ExecutionEngine engine = ExecutionEngine.auto,
})

Starts bounded pull-based batch production on a native worker.

At most capacity frames wait in the native channel. The worker never invokes Dart callbacks; consumers explicitly call BatchStream.poll.

Implementation

BatchStream batchStreamSync({
  int batchRows = 65536,
  int capacity = 2,
  ExecutionEngine engine = ExecutionEngine.auto,
}) {
  _validateBatchStreamLimits(batchRows, capacity);
  final lease = _owner.lease('LazyFrame');
  try {
    return _runtime._adoptBatchStream(
      _runtime._client.invokeSync('lazyBatchStream', {
        'input': lease.handle.toString(),
        'batchRows': batchRows,
        'capacity': capacity,
        'engine': engine.wireName,
      }),
    );
  } finally {
    lease.end();
  }
}