DeadlineSignal constructor

DeadlineSignal(
  1. DateTime deadline, {
  2. AbortSignal? parent,
  3. 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]);
}