Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Pool
:: Int | Pool size. |
-> DiffTime | Connection acquisition timeout. |
-> DiffTime | Maximal connection lifetime. |
-> Settings | Connection settings. |
-> IO Pool |
Create a connection-pool, with default settings.
No connections actually get established by this function. It is delegated
to use
.
use :: Pool -> Session a -> IO (Either UsageError a) Source #
Use a connection from the pool to run a session and return the connection to the pool, when finished.
Session failing with a ClientError
gets interpreted as a loss of
connection. In such case the connection does not get returned to the pool
and a slot gets freed up for a new connection to be established the next
time one is needed. The error still gets returned from this function.
release :: Pool -> IO () Source #
Release all the idle connections in the pool, and mark the in-use connections to be released after use. Any connections acquired after the call will be freshly established.
The pool remains usable after this action. So you can use this function to reset the connections in the pool. Naturally, you can also use it to release the resources.
Errors
data UsageError Source #
Union over all errors that use
can result in.
ConnectionUsageError ConnectionError | Attempt to establish a connection failed. |
SessionUsageError QueryError | Session execution failed. |
AcquisitionTimeoutUsageError | Timeout acquiring a connection. |
Instances
Exception UsageError Source # | |
Defined in Hasql.Pool toException :: UsageError -> SomeException # fromException :: SomeException -> Maybe UsageError # displayException :: UsageError -> String # | |
Show UsageError Source # | |
Defined in Hasql.Pool showsPrec :: Int -> UsageError -> ShowS # show :: UsageError -> String # showList :: [UsageError] -> ShowS # | |
Eq UsageError Source # | |
Defined in Hasql.Pool (==) :: UsageError -> UsageError -> Bool # (/=) :: UsageError -> UsageError -> Bool # |