add readIORef to sequential implementation
authorRoss Paterson <ross@soi.city.ac.uk>
Fri, 16 Jan 2009 18:46:42 +0000 (18:46 +0000)
committerRoss Paterson <ross@soi.city.ac.uk>
Fri, 16 Jan 2009 18:46:42 +0000 (18:46 +0000)
Control/Sequential/STM.hs

index c3dc2ef..152104d 100644 (file)
@@ -5,7 +5,7 @@
 -- #hide
 module Control.Sequential.STM (
        STM, atomically, catchSTM,
-       TVar, newTVar, newTVarIO, readTVar, writeTVar
+       TVar, newTVar, newTVarIO, readTVar, readTVarIO, writeTVar
     ) where
 
 import Prelude hiding (catch)
@@ -77,6 +77,9 @@ newTVarIO a = do
 readTVar :: TVar a -> STM a
 readTVar (TVar ref) = STM (const (readIORef ref))
 
+readTVarIO :: TVar a -> IO a
+readTVarIO (TVar ref) = readIORef ref
+
 writeTVar :: TVar a -> a -> STM ()
 writeTVar (TVar ref) a = STM $ \ r -> do
     oldval <- readIORef ref