Waits until the queue is shutdown.
Waits until the queue is shutdown. The IO
returned by this method will
not resume until the queue has been shutdown. If the queue is already
shutdown, the IO
will resume right away.
How many elements can hold in the queue
How many elements can hold in the queue
true
if shutdown
has been called.
true
if shutdown
has been called.
Publishes a message to the hub, returning whether the message was published to the hub.
Publishes all of the specified messages to the hub, returning any messages that were not published to the hub.
Interrupts any fibers that are suspended on offer
or take
.
Interrupts any fibers that are suspended on offer
or take
. Future calls
to offer*
and take*
will be interrupted immediately.
Retrieves the size of the queue.
Retrieves the size of the queue. This may be negative if fibers are suspended waiting for elements to be added to the queue or greater than the capacity if fibers are suspended waiting to add elements to the queue.
Subscribes to receive messages from the hub.
Subscribes to receive messages from the hub. The resulting subscription can be evaluated multiple times within the scope to take a message from the hub each time.
Checks whether the queue is currently empty.
Checks whether the queue is currently full.
Places one value in the queue.
For Bounded Queue: uses the BackPressure
Strategy, places the values in
the queue and always returns no leftovers.
For Bounded Queue: uses the BackPressure
Strategy, places the values in
the queue and always returns no leftovers. If the queue has reached
capacity, then the fiber performing the offerAll
will be suspended until
there is room in the queue.
For Unbounded Queue: Places all values in the queue and returns no leftovers.
For Sliding Queue: uses Sliding
Strategy If there is room in the queue,
it places the values otherwise it removes the old elements and enqueues the
new ones. Always returns no leftovers.
For Dropping Queue: uses Dropping
Strategy, It places the values in the
queue but if there is no room it will not enqueue them and return the
leftovers.
A
Hub
is an asynchronous message hub. Publishers can offer messages to the hub and subscribers can subscribe to take messages from the hub.