periodic-client-1.1.7.1: src/Periodic/Trans/ClientPool.hs
module Periodic.Trans.ClientPool
( module Periodic.Trans.Client
, ClientPoolEnv
, runClientPoolT
, openPool
) where
import Data.Pool (Pool, createPool, withResource)
import Metro.Class (Transport, TransportConfig)
import Periodic.Trans.Client hiding (close)
import qualified Periodic.Trans.Client as C (close)
type ClientPoolEnv tp = Pool (ClientEnv tp)
runClientPoolT :: ClientPoolEnv tp -> ClientT tp IO a -> IO a
runClientPoolT pool m = withResource pool $ flip runClientT m
openPool :: Transport tp => TransportConfig tp -> Int -> IO (ClientPoolEnv tp)
openPool config = createPool (open config) (`runClientT` C.close) 1 5000