module Control.Distributed.STM.DebugDSTM
(module Control.Distributed.STM.DebugBase,
printValid, printValidFromId, proc, printStatistics) where
import Control.Distributed.STM.DebugBase
import Control.Distributed.STM.EnvAddr
import Control.Distributed.STM.STM
import Control.Distributed.STM.TVar
import Prelude as P hiding (catch, putStr, putStrLn)
printValid :: String -> TransID -> ValidLog -> IO ()
printValid str transId (env, startVals) = do
debugStrLn8 (">>> printValid "++str++" <<<")
debugStrLn8 ("TransID = "++show transId)
case startVals of
Left idActsRVal ->
debugStrLn8 ("loc env = "++show env++show ((fst.unzip.fst) idActsRVal))
Right startRemVals -> do
debugStrLn8 ("rem env = "++show env)
mapM_ printRemVal startRemVals
debugStrLn8 ("<<< printValid")
printRemVal :: ValidRemVal -> IO ()
printRemVal (vId, (rVal, wVal)) = do
debugStrLn8 (" id = "++show vId++" rVal = "++show rVal++" wVal = "++show wVal)
printValidFromId :: String -> TransID -> [ValidRemVal] -> IO ()
printValidFromId str transId startRemVals = do
debugStrLn8 (">>> printValidFromId "++str++" <<<")
debugStrLn8 ("TransID = "++show transId)
mapM_ printRemVal startRemVals
debugStrLn8 ("<<< printValidFromId")
proc :: IO a -> STM a
proc io = STM (\stmState -> io >>= return . Success stmState)
printStatistics :: String -> IO ()
printStatistics = printTCPStat