diff options
| author | simonmar <unknown> | 2000-10-02 11:06:19 +0000 |
|---|---|---|
| committer | simonmar <unknown> | 2000-10-02 11:06:19 +0000 |
| commit | e9e111d726ae93939d4dc16d548d6f011f7215c8 (patch) | |
| tree | dc1f98ef9d73a0d01d4d3dacbc84655f9d19ba47 | |
| parent | 334e3c04376a84c977c2d5f29d384daa38a76913 (diff) | |
| download | haskell-e9e111d726ae93939d4dc16d548d6f011f7215c8.tar.gz | |
[project @ 2000-10-02 11:06:19 by simonmar]
- move readMVar and swapMVar from PrelConc to concurrent
- add the following exception-safe MVar operations:
withMVar :: MVar a -> (a -> IO b) -> IO b
modifyMVar :: MVar a -> (a -> IO (a,b)) -> IO b
modifyMVar_ :: MVar a -> (a -> IO a) -> IO ()
- re-implement readMVar and swapMVar in an exception-safe way.
- re-implement the Chan operations using withMVar et al.
| -rw-r--r-- | ghc/lib/std/PrelConc.lhs | 16 |
1 files changed, 1 insertions, 15 deletions
diff --git a/ghc/lib/std/PrelConc.lhs b/ghc/lib/std/PrelConc.lhs index 4594a6bfcd..7ad1038c18 100644 --- a/ghc/lib/std/PrelConc.lhs +++ b/ghc/lib/std/PrelConc.lhs @@ -1,5 +1,5 @@ % ----------------------------------------------------------------------------- -% $Id: PrelConc.lhs,v 1.20 2000/07/07 11:03:58 simonmar Exp $ +% $Id: PrelConc.lhs,v 1.21 2000/10/02 11:06:19 simonmar Exp $ % % (c) The University of Glasgow, 1994-2000 % @@ -33,8 +33,6 @@ module PrelConc , newEmptyMVar -- :: IO (MVar a) , takeMVar -- :: MVar a -> IO a , putMVar -- :: MVar a -> a -> IO () - , readMVar -- :: MVar a -> IO a - , swapMVar -- :: MVar a -> a -> IO a , tryTakeMVar -- :: MVar a -> IO (Maybe a) , isEmptyMVar -- :: MVar a -> IO Bool @@ -136,18 +134,6 @@ newMVar value = putMVar mvar value >> return mvar -readMVar :: MVar a -> IO a -readMVar mvar = - takeMVar mvar >>= \ value -> - putMVar mvar value >> - return value - -swapMVar :: MVar a -> a -> IO a -swapMVar mvar new = - takeMVar mvar >>= \ old -> - putMVar mvar new >> - return old - -- tryTakeMVar is a non-blocking takeMVar tryTakeMVar :: MVar a -> IO (Maybe a) tryTakeMVar (MVar m) = IO $ \ s -> |
