pollFuture method
Future<TimeoutObservation<T> >
pollFuture(
- BigInt now,
- FutureOr<
TimeoutOperation< operation(),T> > - FutureOr<
TimeoutCancellation> cancellation()
Future adapter for caller-owned async operation and cancellation seams.
Implementation
Future<TimeoutObservation<T>> pollFuture(
BigInt now,
FutureOr<TimeoutOperation<T>> Function() operation,
FutureOr<TimeoutCancellation> Function() cancellation,
) async {
final immediate = _beforeAdapters(now);
if (immediate != null) return immediate;
// Invoke both before awaiting either, preserving the sync adapter's
// exactly-once contract and result precedence.
final operationResult = Future<TimeoutOperation<T>>.sync(operation);
final cancellationResult = Future<TimeoutCancellation>.sync(cancellation);
return _settle(
await operationResult,
await cancellationResult,
);
}