package caqti

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Parameter Make.Pool

include Caqti.Pool.S with type 'a fiber := 'a System.Fiber.t
type ('a, +'e) t
val size : ('a, 'e) t -> int

size pool is the current number of open resources in pool.

val use : ?priority:float -> ('a -> ('b, 'e) result System.Fiber.t) -> ('a, 'e) t -> ('b, 'e) result System.Fiber.t

use f pool calls f on a resource drawn from pool, handing back the resource to the pool when f exits. The result returned by f is not used by Caqti, but allows flattening errors into a single polymorphic variant type.

  • parameter priority

    Requests for the resource are handled in decreasing order of priority. The default priority is 0.0.

val drain : ('a, 'e) t -> unit System.Fiber.t

drain pool closes all resources in pool once they become idle. The pool is still usable, as new resources will be created on demand. Resources are not closed while they are in use.

val create : ?config:Caqti.Pool.Config.t -> ?check:('a -> (bool -> unit) -> unit) -> ?validate:('a -> bool System.Fiber.t) -> ?log_src:Logs.Src.t -> sw:System.Switch.t -> stdenv:System.stdenv -> (unit -> ('a, 'e) result System.Fiber.t) -> ('a -> unit System.Fiber.t) -> ('a, 'e) t

Internal: create alloc free is a pool of resources allocated by alloc and freed by free. This is primarily intended for implementing the connect_pool functions.

  • parameter max_size

    The maximum number of allocated resources.

  • parameter max_idle_size

    The maximum number of resources to pool for later use. Defaults to max_size.

  • parameter max_use_count

    The maximum number of times to use a connection, or None for no limit.

  • parameter check

    A function used to check a resource after use.

  • parameter validate

    A function to check before use that a resource is still valid.