interface ~~Queue~~<F, A> : QueueOf<F, A>, Dequeue<F, A>, Enqueue<F, A>
Deprecated: The IO datatype and it’s related type classes will disappear in Arrow 0.13.0. All useful operations are offered directly over suspend functions by Arrow Fx Coroutines. https://arrow-kt.io/docs/fx/async/
Lightweight Concurrent Queue for values of A.
A Queue can be used using 4 different back-pressure strategies:
bounded: Offering to a bounded queue at capacity will cause the fiber making the call to be suspended until the queue has space to receive the offer value
dropping: Offering to a dropping queue at capacity will cause the offered value to be discarded
sliding: Offering to a sliding queue at capacity will cause the value at the front of the queue to be discarded to make room for the offered value
unbounded: An unbounded queue has no notion of capacity and is bound only by exhausting the memory limits of the runtime
| BackpressureStrategy | Internal model that represent the Queue strategiessealed class BackpressureStrategy |
| size | Immediately returns the current size of values in the Queue. Can be a negative number when there are takers but no values available.abstract fun size(): Kind<F, Int> |
| bounded | Create a Queue with BackpressureStrategy.Bounded.fun <F, A> bounded(capacity: Int, CF: Concurrent<F>): Kind<F, Queue<F, A>> |
| dropping | Create a Queue with BackpressureStrategy.Dropping.fun <F, A> dropping(capacity: Int, CF: Concurrent<F>): Kind<F, Queue<F, A>> |
| factory | fun <F> factory(CF: Concurrent<F>): QueueFactory<F> |
| sliding | Create a Queue with BackpressureStrategy.Sliding.fun <F, A> sliding(capacity: Int, CF: Concurrent<F>): Kind<F, Queue<F, A>> |
| unbounded | Create a Queue with BackpressureStrategy.Unbounded.fun <F, A> unbounded(CF: Concurrent<F>): Kind<F, Queue<F, A>> |
| invariant | fun <F> Queue.Companion.~~invariant~~(FR: Functor<F>): QueueInvariant<F> |
Do you like Arrow?
✖