drainPendingStreamCallbacks function

Future<void> drainPendingStreamCallbacks(
  1. bool terminalObserved()
)

Helper that yields up to kStreamDrainMaxMicrotasks microtask ticks, bailing out as soon as terminalObserved returns true. Centralizes the FLUTTER-IOS-001 drain loop used by every synchronous-FFI streaming wrapper (DartBridgeTTS.synthesizeStreamLifecycleProto, DartBridgeVLM.processImageStreamProto, RunAnywhereSTT.transcribeStream, RunAnywhereLLM._generateStreamProto).

Implementation

Future<void> drainPendingStreamCallbacks(
  bool Function() terminalObserved,
) async {
  for (var i = 0; i < kStreamDrainMaxMicrotasks; i++) {
    if (terminalObserved()) return;
    await Future<void>.delayed(Duration.zero);
  }
}