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})

Uses (22)

Used by (1)