| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Control.Concurrent.STM.TMDequeRingBuffer
Synopsis
- data TMDeque a
- newTMDeque :: STM (TMDeque a)
- newTMDequeIO :: IO (TMDeque a)
- pushFrontTMDeque :: TMDeque a -> a -> STM ()
- popFrontTMDeque :: TMDeque a -> STM (Maybe a)
- popBackTMDeque :: TMDeque a -> STM (Maybe a)
- tryPopFrontTMDeque :: TMDeque a -> STM (Maybe (Maybe a))
- tryPopBackTMDeque :: TMDeque a -> STM (Maybe (Maybe a))
- closeTMDeque :: TMDeque a -> STM ()
- isClosedTMDeque :: TMDeque a -> STM Bool
- isClosedTMDequeIO :: TMDeque a -> IO Bool
- isEmptyTMDeque :: TMDeque a -> STM Bool
- estimateSizeTMDequeIO :: TMDeque a -> IO Int
- sizeTMDeque :: TMDeque a -> STM Int
The TMDeque type
Construction
newTMDequeIO :: IO (TMDeque a) Source #
IO variant of newTMDeque, which is faster without STM transaction overhead.
Push operations
pushFrontTMDeque :: TMDeque a -> a -> STM () Source #
Push an element to the front of the deque. Silently ignored if the deque is closed.
Pop operations (blocking)
popFrontTMDeque :: TMDeque a -> STM (Maybe a) Source #
Pop an element from the front. Blocks if the deque is open and empty.
Returns Nothing when the deque is closed and empty (back-of-stream).
popBackTMDeque :: TMDeque a -> STM (Maybe a) Source #
Pop an element from the back. Blocks if the deque is open and empty.
Returns Nothing when the deque is closed and empty (back-of-stream).
Pop operations (non-blocking)
tryPopFrontTMDeque :: TMDeque a -> STM (Maybe (Maybe a)) Source #
Non-blocking pop from the front.
Nothing— closed (end-of-stream)Just Nothing— open and empty (would block)Just (Just a)— got an element
tryPopBackTMDeque :: TMDeque a -> STM (Maybe (Maybe a)) Source #
Non-blocking pop from the back.
Nothing— closed (end-of-stream)Just Nothing— open and empty (would block)Just (Just a)— got an element
Closing & queries
closeTMDeque :: TMDeque a -> STM () Source #
Close the deque. After this, all push operations will be ignored, and all pop operations will return Nothing once the deque is empty.
isClosedTMDequeIO :: TMDeque a -> IO Bool Source #
IO variant of isClosedTMDeque.