yesod-persistent 1.2.2.1 → 1.2.2.2
raw patch · 2 files changed
+19/−22 lines, 2 filesdep +resource-pooldep −lifted-basedep −pool-conduitdep ~resourcet
Dependencies added: resource-pool
Dependencies removed: lifted-base, pool-conduit
Dependency ranges changed: resourcet
Files
- Yesod/Persist/Core.hs +16/−18
- yesod-persistent.cabal +3/−4
Yesod/Persist/Core.hs view
@@ -25,8 +25,7 @@ import Yesod.Core import Data.Conduit import Blaze.ByteString.Builder (Builder)-import Data.IORef.Lifted-import Data.Conduit.Pool+import Data.Pool import Control.Monad.Trans.Resource import Control.Exception (throwIO) import Yesod.Core.Types (HandlerContents (HCError))@@ -82,24 +81,23 @@ => (site -> Pool SQL.Connection) -> HandlerT site IO (DBRunner site, HandlerT site IO ()) defaultGetDBRunner getPool = do- ididSucceed <- newIORef False- pool <- fmap getPool getYesod- managedConn <- takeResource pool- let conn = mrValue managedConn-- let withPrep f = f conn (SQL.connPrepare conn)- (finishTransaction, ()) <- allocate (withPrep SQL.connBegin) $ \() -> do- didSucceed <- readIORef ididSucceed- withPrep $ if didSucceed- then SQL.connCommit- else SQL.connRollback+ let withPrep conn f = f conn (SQL.connPrepare conn)+ (relKey, (conn, local)) <- allocate+ (do+ (conn, local) <- takeResource pool+ withPrep conn SQL.connBegin+ return (conn, local)+ )+ (\(conn, local) -> do+ withPrep conn SQL.connRollback+ destroyResource pool local conn) - let cleanup = do- writeIORef ididSucceed True- release finishTransaction- mrReuse managedConn True- mrRelease managedConn+ let cleanup = liftIO $ do+ withPrep conn SQL.connCommit+ putResource local conn+ _ <- unprotect relKey+ return () return (DBRunner $ \x -> runReaderT (unSqlPersistT x) conn, cleanup)
yesod-persistent.cabal view
@@ -1,5 +1,5 @@ name: yesod-persistent-version: 1.2.2.1+version: 1.2.2.2 license: MIT license-file: LICENSE author: Michael Snoyman <michael@snoyman.com>@@ -20,9 +20,8 @@ , transformers >= 0.2.2 && < 0.4 , blaze-builder , conduit- , lifted-base- , pool-conduit- , resourcet+ , resourcet >= 0.4.5+ , resource-pool exposed-modules: Yesod.Persist Yesod.Persist.Core ghc-options: -Wall