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
|