-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A high-performance striped resource pooling implementation -- -- A high-performance striped pooling abstraction for managing -- flexibly-sized collections of resources such as database connections. @package resource-pool @version 0.2.0.2 -- | A high-performance striped pooling abstraction for managing -- flexibly-sized collections of resources such as database connections. -- -- "Striped" means that a single Pool consists of several -- sub-pools, each managed independently. A stripe size of 1 is fine for -- many applications, and probably what you should choose by default. -- Larger stripe sizes will lead to reduced contention in -- high-performance multicore applications, at a trade-off of causing the -- maximum number of simultaneous resources in use to grow. module Data.Pool data Pool a createPool :: IO a -> (a -> IO ()) -> Int -> NominalDiffTime -> Int -> IO (Pool a) -- | Temporarily take a resource from a Pool, perform an action with -- it, and return it to the pool afterwards. -- -- -- -- If the action throws an exception of any type, the resource is -- destroyed, and not returned to the pool. -- -- It probably goes without saying that you should never manually destroy -- a pooled resource, as doing so will almost certainly cause a -- subsequent user (who expects the resource to be valid) to throw an -- exception. withResource :: MonadControlIO m => Pool a -> (a -> m b) -> m b instance Show (Pool a)