Http.pool.take.go: def of bend-kit-http@0.38.2.0 Import: import bend-kit-http@0.38.2.0/http.bend as Http Lines 3656-3678 of bend-kit-http@0.38.2.0/http.bend: https://jend.leeeet.dev/read.txt?path=bend-kit-http@0.38.2.0/http.bend&start_line=3656&end_line=3678 import Base # Each idle socket takes two steps: the peek, then the close and the next take. Each read of HTTP/2 frames takes one more. def pool.take.go(n: Nat, +key: String, pt: Pool & Took) -> IO(Pool & Maybe<&1, Conn>): match n pt: case _ Tuple{p, TookNone{}}: IO.pure(Pool & Maybe<&1, Conn>, (p, None{})) case _ Tuple{p, TookSeen{True{}, c}}: IO.pure(Pool & Maybe<&1, Conn>, (p, Some{c})) case 0n Tuple{p, TookRaw{c}}: do IO>: conn.close(c) return (p, None{}) case 0n Tuple{p, TookSeen{False{}, c}}: do IO>: conn.close(c) return (p, None{}) case 1n+k Tuple{p, TookRaw{c}}: do IO>: t : Took <- conn.idle(c) pool.take.go(k, key, (p, t)) case 1n+k Tuple{p, TookSeen{False{}, c}}: do IO>: conn.close(c) pool.take.go(k, key, took.of(pool.take(p, key))) Uses (17): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=IO https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=IO.bind https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=IO.pure https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Maybe https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Pair https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Sigma https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=String https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Unit https://jend.leeeet.dev/definition.txt?path=bend-kit-http@0.38.2.0/http.bend&name=Conn https://jend.leeeet.dev/definition.txt?path=bend-kit-http@0.38.2.0/http.bend&name=Pool https://jend.leeeet.dev/definition.txt?path=bend-kit-http@0.38.2.0/http.bend&name=Took https://jend.leeeet.dev/definition.txt?path=bend-kit-http@0.38.2.0/http.bend&name=conn.close https://jend.leeeet.dev/definition.txt?path=bend-kit-http@0.38.2.0/http.bend&name=conn.idle https://jend.leeeet.dev/definition.txt?path=bend-kit-http@0.38.2.0/http.bend&name=pool.take https://jend.leeeet.dev/definition.txt?path=bend-kit-http@0.38.2.0/http.bend&name=took.of