def server.admitted
bend-kit-http@0.38.2.0 · http.bend:6411
import bend-kit-http@0.38.2.0/http.bend as Http
import Base
import bend-kit-http@0.38.2.0/admission.bend as Admission
6411def server.admitted(~C: Data, ~operation: C -> Limits -> Chan(Admission.Command) -> Socket -> IO(Unit), admitted: Bool, +context: C, +config: ServerConfig, +inbox: Chan(Admission.Command), drained: Chan(Admission.Counts), listener: Listener, socket: Socket) -> IO(Server<C> & Result<&1, &1, U32 & String, Chan(Unit)>):
6412 match admitted:
6413 case False{}:
6414 do IO<Server<C> & Result<&1, &1, U32 & String, Chan(Unit)>>:
6415 Socket.close(socket)
6416 return (Server{listener, context, config, inbox, drained}, Fail{(11, "transport capacity exhausted")})
6417 case True{}:
6418 do IO<Server<C> & Result<&1, &1, U32 & String, Chan(Unit)>>:
6419 finished : Chan(Unit) <- IO.fork(Unit, admission.done(inbox, operation(context, limits.config(config), inbox, socket)))
6420 return (Server{listener, context, config, inbox, drained}, Done{finished})