package fuseau

  1. Overview
  2. Docs

Module Fuseau.Resource_poolSource

Resource pool.

This pool can be used for buffers. It can be used for other resources but do note that it assumes resources are still reasonably cheap to produce and discard, and will never block waiting for a resource — it's not a good pool for DB connections.

Sourcetype 'a t

Pool of values of type 'a

Sourceval create : ?clear:('a -> unit) -> mk_item:(unit -> 'a) -> ?max_size:int -> unit -> 'a t

Create a new pool.

  • parameter mk_item

    produce a new item in case the pool is empty

  • parameter max_size

    maximum number of item in the pool before we start dropping resources on the floor. This controls resource consumption.

  • parameter clear

    a function called on items before recycling them.

Sourceval acquire : 'a t -> 'a

Acquire (or create) a new resource from the pool.

Sourceval recycle : 'a t -> 'a -> unit

Recycle a value into the pool. The value must not be used afterwards.

Sourceval with_resource : 'a t -> ('a -> 'b) -> 'b

with_resource pool f runs f x with x a resource; when f fails or returns, x is returned to the pool for future reuse.

OCaml

Innovation. Community. Security.