Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Pool m a
- mapPool :: (forall x. m x -> n x) -> Pool m a -> Pool n a
- newUnlimitedPool :: (MonadConc m, MonadIO m) => m a -> (a -> m ()) -> NominalDiffTime -> m (Pool m a)
- newPool :: (MonadConc m, MonadIO m, MonadFail m) => m a -> (a -> m ()) -> Int -> NominalDiffTime -> m (Pool m a)
- withResource :: MonadMask m => Pool m a -> (a -> m r) -> m r
- poolMetrics :: Pool m a -> m (Metrics Natural)
- data Metrics a = Metrics {}
Documentation
mapPool :: (forall x. m x -> n x) -> Pool m a -> Pool n a Source #
Lift a natural transformation m ~> n
to Pool m ~> Pool n
.
:: (MonadConc m, MonadIO m) | |
=> m a | Resource creation |
-> (a -> m ()) | Resource destruction |
-> NominalDiffTime | Maximum idle time (+-1s) after which a resource is destroyed |
-> m (Pool m a) |
Create a new pool that has no limit on how many resources it may create and hold.
:: (MonadConc m, MonadIO m, MonadFail m) | |
=> m a | Resource creation |
-> (a -> m ()) | Resource destruction |
-> Int | Maximum number of resources to exist at the same time |
-> NominalDiffTime | Maximum idle time (+-1s) after which a resource is destroyed |
-> m (Pool m a) |
Similar to newUnlimitedPool
but allows you to limit the number of resources that will exist
at the same time. When all resources are currently in use, further resource acquisition will
block until one is no longer in use.
withResource :: MonadMask m => Pool m a -> (a -> m r) -> m r Source #
Use a resource from the pool.
Pool metrics
Metrics | |
|
Instances
Functor Metrics Source # | |
Foldable Metrics Source # | |
Defined in Simpoole fold :: Monoid m => Metrics m -> m # foldMap :: Monoid m => (a -> m) -> Metrics a -> m # foldMap' :: Monoid m => (a -> m) -> Metrics a -> m # foldr :: (a -> b -> b) -> b -> Metrics a -> b # foldr' :: (a -> b -> b) -> b -> Metrics a -> b # foldl :: (b -> a -> b) -> b -> Metrics a -> b # foldl' :: (b -> a -> b) -> b -> Metrics a -> b # foldr1 :: (a -> a -> a) -> Metrics a -> a # foldl1 :: (a -> a -> a) -> Metrics a -> a # elem :: Eq a => a -> Metrics a -> Bool # maximum :: Ord a => Metrics a -> a # minimum :: Ord a => Metrics a -> a # | |
Traversable Metrics Source # | |
Show a => Show (Metrics a) Source # | |