drainPendingStreamCallbacks function
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);
}
}