thread-supervisor-0.2.0.0: A simplified implementation of Erlang/OTP like supervisor over thread

Copyright(c) Naoto Shimazaki 2018-2020
LicenseMIT (see the file LICENSE)
Maintainerhttps://github.com/nshimaza
Stabilityexperimental
Safe HaskellSafe
LanguageHaskell2010

Data.DelayedQueue

Description

Queue with delay before elements become available to dequeue.

DelayedQueue is a FIFO but it does NOT make element available to pop immediately after the element was pushed. DelayedQueue looks like empty until its delay-buffer is filled up by pushed elements. When a value is pushed to a DelayedQueue where delay-buffer of the queue is already full-filled, the oldest element becomes available to dequeue.

Entire elements within DelayedQueue are always inlined in enqueued order. Only older elements overflowed from delay-buffer are available to dequeue. If delay-buffer is not yet filled, no element is available to dequeue. Once delay-buffer is filled, delay-buffer always keeps given number of newest elements.

Synopsis

Documentation

data DelayedQueue a Source #

Queue with delay before elements become available to dequeue.

Instances
Eq a => Eq (DelayedQueue a) Source # 
Instance details

Defined in Data.DelayedQueue

Show a => Show (DelayedQueue a) Source # 
Instance details

Defined in Data.DelayedQueue

newEmptyDelayedQueue Source #

Arguments

:: Int

Delay of the queue in number of element.

-> DelayedQueue a

Created queue.

Create a new DelayedQueue with given delay.

push Source #

Arguments

:: a

value to be queued.

-> DelayedQueue a

queue where the value to be queued.

-> DelayedQueue a

new queue where the value is pushed.

Enqueue a value to a DelayedQueue.

pop Source #

Arguments

:: DelayedQueue a

DelayedQueue from which a value to be pulled.

-> Maybe (a, DelayedQueue a)

Nothing if there is no available element. Returns pulled value and DelayedQueue with the value removed wrapped in Just.

Dequeue a value from a DelayedQueue.