Repository : ssh://darcs.haskell.org//srv/darcs/packages/stm On branch : master
http://hackage.haskell.org/trac/ghc/changeset/9703c744181a6f71c4a6c836ac3b5be897da8b11 >--------------------------------------------------------------- commit 9703c744181a6f71c4a6c836ac3b5be897da8b11 Author: Simon Marlow <[email protected]> Date: Tue Jun 12 10:56:43 2012 +0100 add some UNPACKs to improve performance a bit >--------------------------------------------------------------- Control/Concurrent/STM/TChan.hs | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Control/Concurrent/STM/TChan.hs b/Control/Concurrent/STM/TChan.hs index aea5176..713624e 100644 --- a/Control/Concurrent/STM/TChan.hs +++ b/Control/Concurrent/STM/TChan.hs @@ -43,11 +43,15 @@ import GHC.Conc import Data.Typeable (Typeable) +#define _UPK_(x) {-# UNPACK #-} !(x) + -- | 'TChan' is an abstract type representing an unbounded FIFO channel. -data TChan a = TChan (TVar (TVarList a)) (TVar (TVarList a)) deriving Typeable +data TChan a = TChan _UPK_(TVar (TVarList a)) + _UPK_(TVar (TVarList a)) + deriving Typeable type TVarList a = TVar (TList a) -data TList a = TNil | TCons a (TVarList a) +data TList a = TNil | TCons a _UPK_(TVarList a) -- |Build and returns a new instance of 'TChan' newTChan :: STM (TChan a) _______________________________________________ Cvs-libraries mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-libraries
