No matching definitions.

httpd/pool

src/httpd/pool.tur

bounded worker pool used by httpd/server.

Since: H7

defn

pool-new

(pool-new [size : int handler ptr<void>] :)

allocate a bounded worker pool and spawn `size` threads.

sizedesired number of worker threads (clamped to >= 1).
handler:ptr<void> request handler; same contract as
server-start's handler argument (forwarded verbatim
to srv-worker-loop on every dequeued connection).

:ptr<void> -- opaque pool handle, or NULL if allocation or any thread creation failed before at least one worker was running.

(def pool (pool-new 8 my-handler))

Since: H7

defn

pool-enqueue

(pool-enqueue [pool ptr<void> client-fd : int] :)

hand a client fd off to the pool's worker queue.

pool:ptr<void> pool handle (NULL closes the fd and returns).
client-fd:int connected socket; ownership transferred to the pool.
(pool-enqueue pool client-fd)

Since: H7

defn

pool-stop

(pool-stop [pool ptr<void>] :)

signal shutdown, let workers drain queued connections,

pool:ptr<void> pool handle (NULL is a no-op).
(pool-stop pool)

Since: H7

Internal definitions
pool-worker-loop