From: simonmar Date: Wed, 10 May 2000 11:02:01 +0000 (+0000) Subject: [project @ 2000-05-10 11:02:00 by simonmar] X-Git-Tag: Approximately_9120_patches~4534 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=99b05ba9a0249b464ffec7a7c6de58a724a9af83;p=ghc-hetmet.git [project @ 2000-05-10 11:02:00 by simonmar] rename takeMaybeMVar to tryTakeMVar --- diff --git a/ghc/compiler/prelude/PrimOp.lhs b/ghc/compiler/prelude/PrimOp.lhs index 393dc85..7a0627d 100644 --- a/ghc/compiler/prelude/PrimOp.lhs +++ b/ghc/compiler/prelude/PrimOp.lhs @@ -176,7 +176,7 @@ data PrimOp | TakeMVarOp | PutMVarOp | SameMVarOp - | TakeMaybeMVarOp + | TryTakeMVarOp | IsEmptyMVarOp -- exceptions @@ -460,7 +460,7 @@ tagOf_PrimOp NewMVarOp = ILIT(217) tagOf_PrimOp TakeMVarOp = ILIT(218) tagOf_PrimOp PutMVarOp = ILIT(219) tagOf_PrimOp SameMVarOp = ILIT(220) -tagOf_PrimOp TakeMaybeMVarOp = ILIT(221) +tagOf_PrimOp TryTakeMVarOp = ILIT(221) tagOf_PrimOp IsEmptyMVarOp = ILIT(222) tagOf_PrimOp MkForeignObjOp = ILIT(223) tagOf_PrimOp WriteForeignObjOp = ILIT(224) @@ -751,7 +751,7 @@ allThePrimOps -- Except CCall, which is really a family of primops TakeMVarOp, PutMVarOp, SameMVarOp, - TakeMaybeMVarOp, + TryTakeMVarOp, IsEmptyMVarOp, MkForeignObjOp, WriteForeignObjOp, @@ -1523,12 +1523,12 @@ primOpInfo SameMVarOp in mkGenPrimOp SLIT("sameMVar#") [s_tv, elt_tv] [mvar_ty, mvar_ty] boolTy -primOpInfo TakeMaybeMVarOp +primOpInfo TryTakeMVarOp = let elt = alphaTy; elt_tv = alphaTyVar; s = betaTy; s_tv = betaTyVar state = mkStatePrimTy s in - mkGenPrimOp SLIT("takeMaybeMVar#") [s_tv, elt_tv] + mkGenPrimOp SLIT("tryTakeMVar#") [s_tv, elt_tv] [mkMVarPrimTy s elt, state] (unboxedTriple [state, intPrimTy, elt]) @@ -1914,7 +1914,7 @@ perform a heap check or they block. primOpOutOfLine op = case op of TakeMVarOp -> True - TakeMaybeMVarOp -> True + TryTakeMVarOp -> True PutMVarOp -> True DelayOp -> True WaitReadOp -> True @@ -2079,7 +2079,7 @@ primOpHasSideEffects UnsafeFreezeByteArrayOp = True primOpHasSideEffects UnsafeThawArrayOp = True primOpHasSideEffects TakeMVarOp = True -primOpHasSideEffects TakeMaybeMVarOp = True +primOpHasSideEffects TryTakeMVarOp = True primOpHasSideEffects PutMVarOp = True primOpHasSideEffects DelayOp = True primOpHasSideEffects WaitReadOp = True @@ -2244,7 +2244,7 @@ primOpUsg op TakeMVarOp -> mangle [mkM, mkP ] mkM PutMVarOp -> mangle [mkM, mkM, mkP ] mkR SameMVarOp -> mangle [mkP, mkP ] mkM - TakeMaybeMVarOp -> mangle [mkM, mkP ] mkM + TryTakeMVarOp -> mangle [mkM, mkP ] mkM IsEmptyMVarOp -> mangle [mkP, mkP ] mkM ForkOp -> mangle [mkO, mkP ] mkR diff --git a/ghc/includes/PrimOps.h b/ghc/includes/PrimOps.h index c2457ab..2edd62b 100644 --- a/ghc/includes/PrimOps.h +++ b/ghc/includes/PrimOps.h @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: PrimOps.h,v 1.52 2000/04/13 15:37:11 panne Exp $ + * $Id: PrimOps.h,v 1.53 2000/05/10 11:02:00 simonmar Exp $ * * (c) The GHC Team, 1998-1999 * @@ -662,7 +662,7 @@ EF_(newMutVarzh_fast); #define isEmptyMVarzh(r,a) r=(I_)((GET_INFO((StgMVar*)(a))) == &EMPTY_MVAR_info ) EF_(newMVarzh_fast); EF_(takeMVarzh_fast); -EF_(takeMaybeMVarzh_fast); +EF_(tryTakeMVarzh_fast); EF_(putMVarzh_fast); diff --git a/ghc/lib/std/PrelConc.lhs b/ghc/lib/std/PrelConc.lhs index bef86b6..74a1d7a 100644 --- a/ghc/lib/std/PrelConc.lhs +++ b/ghc/lib/std/PrelConc.lhs @@ -33,7 +33,7 @@ module PrelConc , putMVar -- :: MVar a -> a -> IO () , readMVar -- :: MVar a -> IO a , swapMVar -- :: MVar a -> a -> IO a - , takeMaybeMVar -- :: MVar a -> IO (Maybe a) + , tryTakeMVar -- :: MVar a -> IO (Maybe a) , isEmptyMVar -- :: MVar a -> IO Bool ) where @@ -147,10 +147,10 @@ swapMVar mvar new = putMVar mvar new >> return old --- takeMaybeMVar is a non-blocking takeMVar -takeMaybeMVar :: MVar a -> IO (Maybe a) -takeMaybeMVar (MVar m) = IO $ \ s -> - case takeMaybeMVar# m s of +-- tryTakeMVar is a non-blocking takeMVar +tryTakeMVar :: MVar a -> IO (Maybe a) +tryTakeMVar (MVar m) = IO $ \ s -> + case tryTakeMVar# m s of (# s, 0#, _ #) -> (# s, Nothing #) -- MVar is empty (# s, _, a #) -> (# s, Just a #) -- MVar is full @@ -161,7 +161,7 @@ takeMaybeMVar (MVar m) = IO $ \ s -> the MVar may have been filled (or emptied) - so be extremely careful when using this operation. - Use takeMaybeMVar instead if possible. + Use tryTakeMVar instead if possible. If you can re-work your abstractions to avoid having to depend on isEmptyMVar, then you're encouraged to do so, diff --git a/ghc/lib/std/PrelGHC.hi-boot b/ghc/lib/std/PrelGHC.hi-boot index 58432a6..bc7dac3 100644 --- a/ghc/lib/std/PrelGHC.hi-boot +++ b/ghc/lib/std/PrelGHC.hi-boot @@ -45,7 +45,7 @@ __export PrelGHC newMVarzh takeMVarzh putMVarzh - takeMaybeMVarzh + tryTakeMVarzh isEmptyMVarzh -- Parallel diff --git a/ghc/rts/PrimOps.hc b/ghc/rts/PrimOps.hc index 1c548f4..e288b32 100644 --- a/ghc/rts/PrimOps.hc +++ b/ghc/rts/PrimOps.hc @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: PrimOps.hc,v 1.51 2000/04/12 17:11:38 simonmar Exp $ + * $Id: PrimOps.hc,v 1.52 2000/05/10 11:02:00 simonmar Exp $ * * (c) The GHC Team, 1998-2000 * @@ -888,7 +888,7 @@ FN_(takeMVarzh_fast) FE_ } -FN_(takeMaybeMVarzh_fast) +FN_(tryTakeMVarzh_fast) { StgMVar *mvar; StgClosure *val;