concurrency-1.1.2.0: Typeclasses, functions, and data types for concurrency and STM.

Copyright(c) 2016 Michael Walker
LicenseMIT
MaintainerMichael Walker <mike@barrucadu.co.uk>
Stabilitystable
PortabilityFlexibleInstances, MultiParamTypeClasses
Safe HaskellNone
LanguageHaskell2010

Control.Concurrent.Classy.STM.TArray

Description

TArrays: transactional arrays, for use in STM-like monads.

Deviations: TArray as defined here does not have an Eq instance, this is because the MonadSTM TVar type does not have an Eq constraint.

Synopsis

Documentation

data TArray stm i e Source #

TArray is a transactional array, supporting the usual MArray interface for mutable arrays.

It is currently implemented as Array ix (TVar stm e), but it may be replaced by a more efficient implementation in the future (the interface will remain the same, however).

Since: 1.0.0.0

Instances

MonadSTM stm => MArray (TArray stm) e stm Source #

Since: 1.0.0.0

Methods

getBounds :: Ix i => TArray stm i e -> stm (i, i) #

getNumElements :: Ix i => TArray stm i e -> stm Int

newArray :: Ix i => (i, i) -> e -> stm (TArray stm i e) #

newArray_ :: Ix i => (i, i) -> stm (TArray stm i e) #

unsafeNewArray_ :: Ix i => (i, i) -> stm (TArray stm i e)

unsafeRead :: Ix i => TArray stm i e -> Int -> stm e

unsafeWrite :: Ix i => TArray stm i e -> Int -> e -> stm ()