Play with Queue
Queue represents a concurrent queue
Queue
export interface ConcurrentQueue<A> {
readonly take: T.Effect<T.NoEnv, never, A>;
offer(a: A): T.Effect<T.NoEnv, never, void>;
}
/**
* Create an unbounded concurrent queue
*/
export function unboundedQueue<A>(): T.Effect<
T.NoEnv,
never,
ConcurrentQueue<A>
>
/**
* Create a bounded queue with the given capacity that drops older offers
* @param capacity
*/
export function slidingQueue<A>(
capacity: number
): T.Effect<T.NoEnv, never, ConcurrentQueue<A>>
/**
* Create a dropping queue with the given capacity that drops offers on full
* @param capacity
*/
export function droppingQueue<A>(
capacity: number
): T.Effect<T.NoEnv, never, ConcurrentQueue<A>>
/**
* Create a bounded queue that blocks offers on capacity
* @param capacity
*/
export function boundedQueue<A>(
capacity: number
): T.Effect<T.NoEnv, never, ConcurrentQueue<A>>Usage
Last updated
Was this helpful?