primitive-extras 0.3 → 0.3.0.1
raw patch · 3 files changed
+6/−6 lines, 3 files
Files
- library/PrimitiveExtras/IO.hs +4/−4
- library/PrimitiveExtras/Types.hs +1/−1
- primitive-extras.cabal +1/−1
library/PrimitiveExtras/IO.hs view
@@ -90,15 +90,15 @@ ------------------------- newTVarArray :: a -> Int -> IO (TVarArray a)-newTVarArray a size = TVarArray <$> replicateArray size (newTVarIO a)+newTVarArray a size = TVarArray <$> replicateUnliftedArray size (newTVarIO a) freezeTVarArrayAsPrimArray :: Prim a => TVarArray a -> IO (PrimArray a) freezeTVarArrayAsPrimArray (TVarArray varArray) = do- let size = sizeofArray varArray+ let size = sizeofUnliftedArray varArray mpa <- newPrimArray size forMFromZero_ size $ \ index -> do- var <- indexArrayM varArray index+ var <- indexUnliftedArrayM varArray index value <- atomically (readTVar var) writePrimArray mpa index value unsafeFreezePrimArray mpa@@ -106,5 +106,5 @@ modifyTVarArrayAt :: TVarArray a -> Int -> (a -> a) -> IO () modifyTVarArrayAt (TVarArray array) index fn = do- var <- indexArrayM array index+ var <- indexUnliftedArrayM array index atomically $ modifyTVar' var fn
library/PrimitiveExtras/Types.hs view
@@ -6,4 +6,4 @@ newtype PrimMultiArray a = PrimMultiArray (UnliftedArray (PrimArray a)) -newtype TVarArray a = TVarArray (Array (TVar a))+newtype TVarArray a = TVarArray (UnliftedArray (TVar a))
primitive-extras.cabal view
@@ -1,7 +1,7 @@ name: primitive-extras version:- 0.3+ 0.3.0.1 category: Primitive synopsis: