on master help sign in
Don't use block form of withManager
d80deeeMichael Xavier
katip-elasticsearch/src/Katip/Scribes/ElasticSearch.hs+21−21
@@ -32,7 +32,6 @@ import Control.Monad.Catch
32import Control.Monad.STM
32import Control.Monad.STM
33import Control.Retry
33import Control.Retry
34import Data.Aeson
34import Data.Aeson
35−import Data.Monoid
36import qualified Data.Text.Encoding as T
35import qualified Data.Text.Encoding as T
37import Data.Typeable
36import Data.Typeable
38import Data.UUID
37import Data.UUID
@@ -86,26 +85,27 @@ mkEsScribe
86 -- ^ Returns a finalizer that will gracefully flush all remaining logs before shutting down workers
85 -- ^ Returns a finalizer that will gracefully flush all remaining logs before shutting down workers
87mkEsScribe cfg@EsScribeCfg {..} server ix mapping sev verb = do
86mkEsScribe cfg@EsScribeCfg {..} server ix mapping sev verb = do
88 q <- newTBMQueueIO $ unEsQueueSize essQueueSize
87 q <- newTBMQueueIO $ unEsQueueSize essQueueSize
89− withManager essManagerSettings $ \mgr -> do
88+ mgr <- newManager essManagerSettings
90− let env = BHEnv { bhServer = server
89+ let env = BHEnv { bhServer = server
91− , bhManager = mgr
90+ , bhManager = mgr
92− }
91+ }
93− endSig <- newEmptyMVar
92+ endSig <- newEmptyMVar
94−
93+
95− workers <- replicateM (unEsPoolSize essPoolSize) $ async $
94+ workers <- replicateM (unEsPoolSize essPoolSize) $ async $
96− startWorker cfg env ix mapping q
95+ startWorker cfg env ix mapping q
97−
96+
98− _ <- async $ do
97+ _ <- async $ do
99− takeMVar endSig
98+ takeMVar endSig
100− atomically $ closeTBMQueue q
99+ atomically $ closeTBMQueue q
101− mapM_ wait workers
100+ mapM_ wait workers
101+ closeManager mgr
102− putMVar endSig ()
102+ putMVar endSig ()
103−
103+
104− let scribe = Scribe $ \ i ->
104+ let scribe = Scribe $ \ i ->
105− when (_itemSeverity i >= sev) $
105+ when (_itemSeverity i >= sev) $
106− void $ atomically $ tryWriteTBMQueue q (itemJson verb i)
106+ void $ atomically $ tryWriteTBMQueue q (itemJson verb i)
107− let finalizer = putMVar endSig () >> takeMVar endSig
107+ let finalizer = putMVar endSig () >> takeMVar endSig
108− return (scribe, finalizer)
108+ return (scribe, finalizer)
109
109
110
110
111-------------------------------------------------------------------------------
111-------------------------------------------------------------------------------