AsyncQueue

object AsyncQueue
Companion:
class
class Object
trait Matchable
class Any

Value members

Concrete methods

def bounded[A](capacity: Int)(implicit s: Scheduler): AsyncQueue[A]

Builds a limited capacity and back-pressured AsyncQueue.

Builds a limited capacity and back-pressured AsyncQueue.

Value parameters:
capacity

is the maximum capacity of the internal buffer; note that due to performance optimizations, the actual capacity gets rounded to a power of 2, so the actual capacity may be slightly different than the one specified

s

is a Scheduler, needed for asynchronous waiting on poll when the queue is empty or for back-pressuring offer when the queue is full

See also:

unbounded for building an unbounded queue that can use the entire memory available to the process.

def unbounded[A](chunkSizeHint: Option[Int])(implicit s: Scheduler): AsyncQueue[A]

Builds an unlimited AsyncQueue that can use the entire memory available to the process.

Builds an unlimited AsyncQueue that can use the entire memory available to the process.

Value parameters:
chunkSizeHint

is an optimization parameter — the underlying implementation may use an internal buffer that uses linked arrays, in which case the "chunk size" represents the size of a chunk; providing it is just a hint, it may or may not be used

s

is a Scheduler, needed for asynchronous waiting on poll when the queue is empty or for back-pressuring offer when the queue is full

See also:

bounded for building a limited capacity queue.

def withConfig[A](capacity: BufferCapacity, channelType: ChannelType)(implicit scheduler: Scheduler): AsyncQueue[A]

Builds an AsyncQueue with fine-tuned config parameters.

Builds an AsyncQueue with fine-tuned config parameters.

This is unsafe due to problems that can happen via selecting the wrong ChannelType, so use with care.

Value parameters:
capacity

specifies the BufferCapacity, which can be either "bounded" (with a maximum capacity), or "unbounded"

channelType

(UNSAFE) specifies the concurrency scenario, for fine tuning the performance