Concurrent.BoundedQueue
- Package
- purescript-concurrent-queues
- Repository
- purescript-contrib/purescript-concurrent-queues
A concurrent FIFO data structure with bounded capacity.
This datastructure is useful in various consumer/producer situations.
#new Source
new :: forall a. Int -> Aff (BoundedQueue a)Creates a new BoundedQueue with the given capacity,
#write Source
write :: forall a. BoundedQueue a -> a -> Aff UnitWrites an element to the given queue. Will block if the queue is full until someone reads from it.
#read Source
read :: forall a. BoundedQueue a -> Aff aReads an element from the given queue, will block if the queue is empty, until someone writes to it.
#isEmpty Source
isEmpty :: forall a. BoundedQueue a -> Aff BooleanChecks whether the given queue is empty. Never blocks.
#tryRead Source
tryRead :: forall a. BoundedQueue a -> Aff (Maybe a)Attempts to read an element from the given queue. If the queue is empty,
returns Nothing.
Careful! If other readers are blocked on the queue tryRead will also
block.
#tryWrite Source
tryWrite :: forall a. BoundedQueue a -> a -> Aff BooleanAttempts to write an element into the given queue. If the queue is full,
returns false otherwise true.
Careful! If other writers are blocked on the queue tryWrite will also
block.
Re-exports from Concurrent.BoundedQueue.Internal
#BoundedQueue Source
newtype BoundedQueue a