BSD-3-Clause licensed 
This version can be pinned in stack with:stm-2.5.3.1@sha256:b93121e5fb0939cb7120322763079b425bab097e049abb35580ecb6ab6abccbe,2356
Module documentation for 2.5.3.1
- Control- Control.Concurrent
- Control.Monad
 
Used by 181 packages in 
nightly-2025-10-31(full list with versions):
acid-state, 
advent-of-code-api, 
Agda, 
alarmclock, 
alternators, 
amqp, 
async, 
async-pool, 
async-refresh, 
auto-update, 
blank-canvas, 
box, 
brick, 
cabal-install, 
cache, 
chan, 
classy-prelude, 
co-log-concurrent, 
concurrency, 
concurrent-extra, 
concurrent-output, 
conduit-algorithms, 
conduit-extra, 
consumers, 
core-program, 
core-telemetry, 
data-ref, 
di-core, 
di-df1, 
di-monad, 
distributed-process, 
distributed-process-async, 
distributed-process-client-server, 
distributed-process-execution, 
distributed-process-extras, 
distributed-process-systest, 
distributed-process-tests, 
effectful, 
every, 
exceptions, 
and many more 
2.5.3.1 November 2023
- Drop unused testcase inadvertently introduced in previous reversion
2.5.3.0 November 2023
- Revert array-based reimplementation of TBQueuedue to #76
2.5.2.1 September 2023
- Eliminate reliance on undefined CPP behavior (#75)
2.5.2.0 September 2023
- Fix strictness of stateTVar(#30)
- Rewrite TBQueueto use a more-efficient array-based representation (#65)
- newTBQueue 0now fails as one would expect (#28)
- Add capacityTBQueue(#61)
- Add MArray TArray e IOinstance
- Use unlifted Array#forTArray(#66)
2.5.1.0 Aug 2022
- Teach flushTBQueueto only flush queue when necessary
- Introduce Control.Concurrent.STM.TMVar.writeTMVar
- Add SemigroupandMonoidinstances forSTM
2.5.0.2 Dec 2021
2.5.0.1 May 2020
- Optimise implementation of peekTQueueandpeekTBQueueto reduce
probability of transaction conflicts.
2.5.0.0 Sep 2018
- 
Removed alwaysSucceedsandalways, GHC’s invariant checking primitives. (GHC #14324)
 
- 
Add lengthTBQueuetoControl.Concurrent.STM.TBQueue(gh-9)
 
- 
Add stateTVar :: TVar s -> (s -> (a, s)) -> STM acombinator (gh-14)
 
- 
Switched newTBQueueandnewTBQueueIOto acceptNaturalas size (gh-17)
 
- 
Switched signalTSemNandnewTSemto acceptNaturalandIntegerrespectively (gh-17)
 
2.4.5.1 Sep 2018
2.4.5.0 Feb 2018
- 
Fix space leak in TBQueue(gh-2, GHC#14494)
 
- 
Make signalTSemresilient againstIntoverflows (gh-4)
 
- 
Make definition of readTQueueconsistent withreadTBQueue(gh-3, GHC#9539)
 
- 
Add flushTQueuetoControl.Concurrent.STM.TQueue(gh-1)
 
- 
Add flushTBQueuetoControl.Concurrent.STM.TBQueue(gh-1)
 
- 
Add signalTSemNoperation (gh-5)
 
2.4.4.1  Dec 2015
2.4.4  Dec 2014
- 
Add support for base-4.8.0.0
 
- 
Tighten Safe Haskell bounds 
- 
Add mkWeakTMVartoControl.Concurrent.STM.TMVar
 
- 
Add @since-annotations
 
2.4.3  Mar 2014
- 
Update behaviour of newBroadcastTChanIOto matchnewBroadcastTChanin causing an error on a read from the
broadcast channel
 
- 
Add mkWeakTVar
 
- 
Add isFullTBQueue
 
- 
Fix TChancreated vianewBroadcastTChanIOto throw same
exception on areadTChanas when created vianewBroadcastTChan
 
- 
Update to Cabal 1.10 format 
2.4.2  Nov 2012
- 
Add Control.Concurrent.STM.TSem(transactional semaphore)
 
- 
Add Applicative/Alternative instances of STM for GHC <7.0 
- 
Throw proper exception when readTChancalled on a broadcastTChan
 
2.4  Jul 2012
- 
Add Control.Concurrent.STM.TQueue(a fasterTChan)
 
- 
Add Control.Concurrent.STM.TBQueue(a bounded channel based onTQueue)
 
- 
Add Eqinstance forTChan
 
- 
Add newBroadcastTChanandnewBroadcastTChanIO
 
- 
Some performance improvements for TChan
 
- 
Add cloneTChan