X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Data%2FIORef.hs;h=f8857510e45109cbd42efe99189bef553a90562b;hb=7b2cb5626544e89431b8fbc42ab3eca072913b23;hp=70ea4b15509d0562ebbe1f4e6fb15e41529ed808;hpb=8e9892cd14b7558649fcd9ba0597805eb57505b3;p=ghc-base.git diff --git a/Data/IORef.hs b/Data/IORef.hs index 70ea4b1..f885751 100644 --- a/Data/IORef.hs +++ b/Data/IORef.hs @@ -35,7 +35,9 @@ import Hugs.IORef #ifdef __GLASGOW_HASKELL__ import GHC.Base import GHC.STRef -import GHC.IOBase +-- import GHC.IO +import GHC.IORef hiding (atomicModifyIORef) +import qualified GHC.IORef #if !defined(__PARALLEL_HASKELL__) import GHC.Weak #endif @@ -75,7 +77,7 @@ modifyIORef ref f = readIORef ref >>= writeIORef ref . f -- atomicModifyIORef :: IORef a -> (a -> (a,b)) -> IO b #if defined(__GLASGOW_HASKELL__) -atomicModifyIORef (IORef (STRef r#)) f = IO $ \s -> atomicModifyMutVar# r# f s +atomicModifyIORef = GHC.IORef.atomicModifyIORef #elif defined(__HUGS__) atomicModifyIORef = plainModifyIORef -- Hugs has no preemption