W3cubDocs

/Haskell 8

Control.Concurrent.STM.TQueue

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

Contents

Description

A TQueue is like a TChan, with two important differences:

  • it has faster throughput than both TChan and Chan (although the costs are amortised, so the cost of individual operations can vary a lot).
  • it does not provide equivalents of the 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

data TQueue a Source

TQueue is an abstract type representing an unbounded FIFO channel.

Since: stm-2.4

Instances
Eq (TQueue a)
Instance details

Defined in Control.Concurrent.STM.TQueue

Methods

(==) :: TQueue a -> TQueue a -> Bool

(/=) :: TQueue a -> TQueue a -> Bool

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

Returns True if the supplied TQueue is empty.

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.6.1/docs/html/libraries/stm-2.5.0.0/Control-Concurrent-STM-TQueue.html