From: <br...@us...> - 2004-02-22 12:10:32
|
Update of /cvsroot/htoolkit/HSQL/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1002/src Modified Files: HSQL.hsc Log Message: inTransaction now does rollback on all exceptions, not just SqlErrors Index: HSQL.hsc =================================================================== RCS file: /cvsroot/htoolkit/HSQL/src/HSQL.hsc,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** HSQL.hsc 11 Feb 2004 19:05:41 -0000 1.8 --- HSQL.hsc 22 Feb 2004 11:57:54 -0000 1.9 *************** *** 58,61 **** --- 58,62 ---- ) where + import Prelude hiding (catch) import Foreign import Foreign.C *************** *** 66,70 **** import System.IO.Unsafe(unsafePerformIO) import Control.Monad(when,unless,mplus) ! import Control.Exception (throwDyn, catchDyn, dynExceptions, Exception(..), finally) import Control.Concurrent.MVar import Text.ParserCombinators.ReadP --- 67,71 ---- import System.IO.Unsafe(unsafePerformIO) import Control.Monad(when,unless,mplus) ! import Control.Exception (throwDyn, catchDyn, dynExceptions, Exception(..), finally, catch, throwIO) import Control.Concurrent.MVar import Text.ParserCombinators.ReadP *************** *** 144,150 **** inTransaction conn action = do checkHandle (connClosed conn) (connBeginTransaction conn) ! r <- catchSql (action conn) (\err -> do checkHandle (connClosed conn) (connRollbackTransaction conn) ! throwDyn err) checkHandle (connClosed conn) (connCommitTransaction conn) return r --- 145,151 ---- inTransaction conn action = do checkHandle (connClosed conn) (connBeginTransaction conn) ! r <- catch (action conn) (\err -> do checkHandle (connClosed conn) (connRollbackTransaction conn) ! throwIO err) checkHandle (connClosed conn) (connCommitTransaction conn) return r |