def close
bend-kit-camber@0.15.0.1 · camber.bend:445
import bend-kit-camber@0.15.0.1/camber.bend as Camber
import Base
445
446
447def close(-R: Type, -P: Data, -I: Data, -E: Data, -O: Data, owner: Owner<R, P, I, E, O>) -> IO(OwnerClose<R, P, I, E, O>):
448 Owner{Context{+messages}, finished} = owner
449 do IO<OwnerClose<R, P, I, E, O>>:
450 channel : Chan(CloseResult) <- Chan.new(CloseResult, 1)
451 +reply : Chan(CloseResult) = channel
452 sent : Result<&1, &1, Message<R, P, I, E, O>, Unit> <- Chan.send(Message<R, P, I, E, O>, messages, Shutdown{reply})
453 result : CloseResult <- close.sent(Message<R, P, I, E, O>, sent, reply)
454 close.completed(R, P, I, E, O, result, Owner{Context{messages}, finished})