DeadlineSignal constructor
DeadlineSignal(
- DateTime deadline, {
- AbortSignal? parent,
- Object? reason,
Implementation
DeadlineSignal(
DateTime deadline, {
AbortSignal? parent,
Object? reason,
}) {
_deadline = switch (parent?.deadline) {
final pDeadline? when pDeadline.isBefore(deadline) => pDeadline,
_ => deadline,
};
final future = Future.delayed(
deadline.difference(DateTime.now()),
() => super.errorFromReason(
reason,
Code.deadlineExceeded,
"operation exceeded deadline",
),
);
_future = parent == null ? future : Future.any([parent.future, future]);
}