| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Polysemy.Conc.Effect.Queue
Description
Synopsis
- data Queue d :: Effect where
- Read :: Queue d m (QueueResult d)
- TryRead :: Queue d m (QueueResult d)
- ReadTimeout :: TimeUnit t => t -> Queue d m (QueueResult d)
- Peek :: Queue d m (QueueResult d)
- TryPeek :: Queue d m (QueueResult d)
- Write :: d -> Queue d m ()
- TryWrite :: d -> Queue d m (QueueResult ())
- WriteTimeout :: TimeUnit t => t -> d -> Queue d m (QueueResult ())
- Closed :: Queue d m Bool
- Close :: Queue d m ()
Documentation
data Queue d :: Effect where Source #
Abstracts queues like TBQueue.
For documentation on the constructors, see the module Polysemy.Conc.Data.Queue.
import Polysemy.Conc (Queue, QueueResult)
import Polysemy.Conc.Effect.Queue as Queue
prog :: Member (Queue Int) r => Sem r (QueueResult Int)
prog = do
Queue.write 5
Queue.write 10
Queue.read >>= \case
QueueResult.Success i -> fmap (i +) <$> Queue.read
r -> pure r
Constructors
| Read :: Queue d m (QueueResult d) | Read an element from the queue, blocking until one is available. |
| TryRead :: Queue d m (QueueResult d) | Read an element from the queue, immediately returning if none is available. |
| ReadTimeout :: TimeUnit t => t -> Queue d m (QueueResult d) | Read an element from the queue, blocking until one is available or the timeout expires. |
| Peek :: Queue d m (QueueResult d) | Read an element, leaving it in the queue, blocking until one is available. |
| TryPeek :: Queue d m (QueueResult d) | Read an element, leaving it in the queue, immediately returning if none is available. |
| Write :: d -> Queue d m () | Write an element to the queue, blocking until a slot is available. |
| TryWrite :: d -> Queue d m (QueueResult ()) | Write an element to the queue, immediately returning if no slot is available. |
| WriteTimeout :: TimeUnit t => t -> d -> Queue d m (QueueResult ()) | Write an element to the queue, blocking until a slot is available or the timeout expires. |
| Closed :: Queue d m Bool | Indicate whether the queue is closed. |
| Close :: Queue d m () | Close the queue. |
Instances
| type DefiningModule Queue Source # | |
Defined in Polysemy.Conc.Effect.Queue | |