@@ -27,7 +27,7 @@ import Control.Monad.IO.Class
28import Control.Monad.Reader
28import Control.Monad.Reader
29import Control.Monad.STM
29import Control.Monad.STM
30− (atomically)
30+ (STM, atomically)
31import Control.Monad.Trans.Control
31import Control.Monad.Trans.Control
32 (MonadBaseControl (..))
32 (MonadBaseControl (..))
33import Control.Monad.Trans.Except
33import Control.Monad.Trans.Except
@@ -185,11 +185,11 @@ performRequest req = do
185 now <- getCurrentTime
185 now <- getCurrentTime
186 bss <- Client.brConsume $ Client.responseBody fRes
186 bss <- Client.brConsume $ Client.responseBody fRes
187 let fRes' = fRes { Client.responseBody = BSL.fromChunks bss }
187 let fRes' = fRes { Client.responseBody = BSL.fromChunks bss }
188− mapM_ (updateCookieJar now) $ Client.hrRedirects responses <> [(fReq, fRes')]
188+ mapM_ (atomically . updateCookieJar now) $ Client.hrRedirects responses <> [(fReq, fRes')]
189 return fRes'
189 return fRes'
191− updateCookieJar :: UTCTime -> (Client.Request, Client.Response BSL.ByteString) -> IO ()
191+ updateCookieJar :: UTCTime -> (Client.Request, Client.Response BSL.ByteString) -> STM ()
192− updateCookieJar now' (req', res') = atomically $ modifyTVar' cj (fst . Client.updateCookieJar res' req' now')
192+ updateCookieJar now' (req', res') = modifyTVar' cj (fst . Client.updateCookieJar res' req' now')
194 fReq = Client.hrFinalRequest responses
194 fReq = Client.hrFinalRequest responses
195 fRes = Client.hrFinalResponse responses
195 fRes = Client.hrFinalResponse responses