TimeoutSignal constructor
TimeoutSignal(
- Duration timeout, {
- AbortSignal? parent,
- Object? reason,
Implementation
TimeoutSignal(Duration timeout, {AbortSignal? parent, Object? reason}) {
final deadline = DateTime.now().add(timeout);
_deadline = switch (parent?.deadline) {
final pDeadline? when pDeadline.isBefore(deadline) => pDeadline,
_ => deadline,
};
final future = Future.delayed(
timeout,
() => super.errorFromReason(
reason,
Code.deadlineExceeded,
'operation timed out',
),
);
_future = parent == null ? future : Future.any([parent.future, future]);
}