| Copyright | (c) The University of Glasgow 2012 |
|---|---|
| License | BSD-style (see the file libraries/base/LICENSE) |
| Maintainer | [email protected] |
| Stability | experimental |
| Portability | non-portable (requires STM) |
| Safe Haskell | Trustworthy |
| Language | Haskell2010 |
A TQueue is like a TChan, with two important differences:
TChan and Chan (although the costs are amortised, so the cost of individual operations can vary a lot).dupTChan and cloneTChan operations.The implementation is based on the traditional purely-functional queue representation that uses two lists to obtain amortised O(1) enqueue and dequeue operations.
Since: stm-2.4
TQueue is an abstract type representing an unbounded FIFO channel.
Since: stm-2.4
newTQueue :: STM (TQueue a) Source
Build and returns a new instance of TQueue
newTQueueIO :: IO (TQueue a) Source
IO version of newTQueue. This is useful for creating top-level TQueues using unsafePerformIO, because using atomically inside unsafePerformIO isn't possible.
readTQueue :: TQueue a -> STM a Source
Read the next value from the TQueue.
tryReadTQueue :: TQueue a -> STM (Maybe a) Source
A version of readTQueue which does not retry. Instead it returns Nothing if no value is available.
flushTQueue :: TQueue a -> STM [a] Source
Efficiently read the entire contents of a TQueue into a list. This function never retries.
Since: stm-2.4.5
peekTQueue :: TQueue a -> STM a Source
Get the next value from the TQueue without removing it, retrying if the channel is empty.
tryPeekTQueue :: TQueue a -> STM (Maybe a) Source
A version of peekTQueue which does not retry. Instead it returns Nothing if no value is available.
writeTQueue :: TQueue a -> a -> STM () Source
Write a value to a TQueue.
unGetTQueue :: TQueue a -> a -> STM () Source
Put a data item back onto a channel, where it will be the next item read.
isEmptyTQueue :: TQueue a -> STM Bool Source
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.8.3/docs/html/libraries/stm-2.5.0.0/Control-Concurrent-STM-TQueue.html