wait method
A timeout stops observation; it does not cancel queued/active writing.
Implementation
Future<NativeWriteOutcome> wait({Duration? timeout}) async {
if (timeout != null && timeout.isNegative) {
throw ArgumentError.value(timeout, 'timeout', 'Must not be negative');
}
final elapsed = Stopwatch()..start();
while (true) {
final state = outcome;
if (state != NativeWriteOutcome.pending) return state;
if (timeout != null && elapsed.elapsed >= timeout) {
throw TimeoutException('Native write is still pending', timeout);
}
await Future<void>.delayed(const Duration(milliseconds: 1));
}
}