def select.close

bend-kit-concurrency@0.2.0.0 · concurrency.bend:294

import bend-kit-concurrency@0.2.0.0/concurrency.bend as Concurrency
import Base

294# Closes out once all n relays have reported.
295def select.close(-A: Type, n: Nat, +out: Chan(U32 & A), +done: Chan(Unit)) -> IO(Unit):
296  match n:
297    case 0n:
298      do IO<Unit>:
299        Chan.close(U32 & A, out)
300        Chan.close(Unit, done)
301    case 1n+p:
302      do IO<Unit>:
303        got : Maybe<&1, Unit> <- Chan.recv(Unit, done)
304        select.close(A, p, out, done)

Uses (10)

Used by (1)