def orphans

bend-kit-runner@0.13.0.1 · runner.bend:1719

import bend-kit-runner@0.13.0.1/runner.bend as Runner
import Base
import bend-kit-bytes@0.3.3.0/bytes.bend as Bytes
import bend-kit-scheduler@0.4.1.0/queue.bend as Q

1719# A running ticket at open lost its attempt in a crash: it is requeued at now, as a failed attempt.
1720def orphans(~A: Data, ~penc: A -> Bytes.Bytes, ts: List<&2, Q.Ticket<A>>, +now: Nat, r: Runner<A>, err: Out(Unit)) -> IO(Ran(A)):
1721  match ts:
1722    case Nil{}:
1723      IO.pure(Ran(A), (r, err))
1724    case Con{Q.Ticket{id, d, x}, rest}:
1725      do IO<Ran(A)>:
1726        y : Ran(A) <- commit(~A, ~penc, r, Requeue{id, now})
1727        orphans.next(A, y, err, (r2 => e2 => orphans(~A, ~penc, rest, now, r2, e2)))

Uses (15)

Used by (1)