From 24bb1c55a108781a022dae1f8412d62ae55a08b5 Mon Sep 17 00:00:00 2001 From: sof Date: Tue, 21 Oct 1997 20:39:15 +0000 Subject: [PATCH] [project @ 1997-10-21 20:39:15 by sof] Parallel Haskell changes(hwloidl) --- ghc/lib/concurrent/Parallel.lhs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/ghc/lib/concurrent/Parallel.lhs b/ghc/lib/concurrent/Parallel.lhs index 2c068e6..4a6eacb 100644 --- a/ghc/lib/concurrent/Parallel.lhs +++ b/ghc/lib/concurrent/Parallel.lhs @@ -6,7 +6,7 @@ \begin{code} module Parallel (par, seq -- re-exported #if defined(__GRANSIM__) - , parGlobal, parLocal, parAt, parAtForNow + , parGlobal, parLocal, parAt, parAtAbs, parAtRel, parAtForNow #endif ) where @@ -15,18 +15,27 @@ import ConcBase ( par ) #if defined(__GRANSIM__) import PrelBase import GHCerr ( parError ) -import GHC ( parGlobal#, parLocal#, parAt#, parAtForNow# ) +import GHC ( parGlobal#, parLocal#, parAt#, parAtAbs#, parAtRel#, parAtForNow# ) {-# INLINE parGlobal #-} +{-# INLINE parLocal #-} +{-# INLINE parAt #-} +{-# INLINE parAtAbs #-} +{-# INLINE parAtRel #-} +{-# INLINE parAtForNow #-} parGlobal :: Int -> Int -> Int -> Int -> a -> b -> b parLocal :: Int -> Int -> Int -> Int -> a -> b -> b parAt :: Int -> Int -> Int -> Int -> a -> b -> c -> c +parAtAbs :: Int -> Int -> Int -> Int -> Int -> a -> b -> b +parAtRel :: Int -> Int -> Int -> Int -> Int -> a -> b -> b parAtForNow :: Int -> Int -> Int -> Int -> a -> b -> c -> c parGlobal (I# w) (I# g) (I# s) (I# p) x y = case (parGlobal# x w g s p y) of { 0# -> parError; _ -> y } parLocal (I# w) (I# g) (I# s) (I# p) x y = case (parLocal# x w g s p y) of { 0# -> parError; _ -> y } parAt (I# w) (I# g) (I# s) (I# p) v x y = case (parAt# x v w g s p y) of { 0# -> parError; _ -> y } +parAtAbs (I# w) (I# g) (I# s) (I# p) (I# q) x y = case (parAtAbs# x q w g s p y) of { 0# -> parError; _ -> y } +parAtRel (I# w) (I# g) (I# s) (I# p) (I# q) x y = case (parAtRel# x q w g s p y) of { 0# -> parError; _ -> y } parAtForNow (I# w) (I# g) (I# s) (I# p) v x y = case (parAtForNow# x v w g s p y) of { 0# -> parError; _ -> y } #endif -- 1.7.10.4