def settle.br

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

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-resources@0.1.0.0/resources.bend as Res

1289def settle.br(~A: Data, ~penc: A -> Bytes.Bytes, +op: Op<A>, y: Ran(A), g: Res.Grant, err: Out(Unit),
1290    next: Runner<A> -> Out(Unit) -> IO(Runner<A> & Out(Bool))) -> IO(Runner<A> & Out(Bool)):
1291  match y:
1292    case (r, Fail{e}):
1293      next(release(A, r, g), first(err, Fail{e}))
1294    case (r, Done{u}):
1295      do IO<Runner<A> & Out(Bool)>:
1296        z : Ran(A) <- commit(~A, ~penc, r, op)
1297        settle.done(A, z, g, err, next)

Uses (17)

Used by (1)