Safe Haskell | None |
---|---|
Language | Haskell98 |
Control.Distributed.Process.Internal.CQueue
Description
Concurrent queue for single reader, single writer
- data CQueue a
- data BlockSpec
- = NonBlocking
- | Blocking
- | Timeout Int
- data MatchOn m a
- newCQueue :: IO (CQueue a)
- enqueue :: CQueue a -> a -> IO ()
- enqueueSTM :: CQueue a -> a -> STM ()
- dequeue :: forall m a. CQueue m -> BlockSpec -> [MatchOn m a] -> IO (Maybe a)
- mkWeakCQueue :: CQueue a -> IO () -> IO (Weak (CQueue a))
- queueSize :: CQueue a -> IO Int
Documentation
Constructors
NonBlocking | |
Blocking | |
Timeout Int |
enqueueSTM :: CQueue a -> a -> STM () Source
Variant of enqueue for use in the STM monad.
Arguments
:: CQueue m | Queue |
-> BlockSpec | Blocking behaviour |
-> [MatchOn m a] | List of matches |
-> IO (Maybe a) |
|
Dequeue an element
The timeout (if any) is applied only to waiting for incoming messages, not to checking messages that have already arrived
mkWeakCQueue :: CQueue a -> IO () -> IO (Weak (CQueue a)) Source
Weak reference to a CQueue