Packages

object AsyncQueue

Source
AsyncQueue.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. AsyncQueue
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. 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.

    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

    Annotations
    @UnsafeBecauseImpure()
    See also

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

  2. def unbounded[A](chunkSizeHint: Option[Int] = None)(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.

    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

    Annotations
    @UnsafeBecauseImpure()
    See also

    bounded for building a limited capacity queue.

  3. 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.

    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

    Annotations
    @UnsafeProtocol() @UnsafeBecauseImpure()