Top Description Constructors Methods
io.netty5.util.internal.shaded.org.jctools.queues.unpadded

public Class SpmcUnpaddedArrayQueue<E>

Additional top-level classes in compilation unit: SpmcUnpaddedArrayQueueL1Pad, SpmcUnpaddedArrayQueueProducerIndexField, SpmcUnpaddedArrayQueueL2Pad, SpmcUnpaddedArrayQueueConsumerIndexField, SpmcUnpaddedArrayQueueMidPad, SpmcUnpaddedArrayQueueProducerIndexCacheField, SpmcUnpaddedArrayQueueL3Pad.

extends SpmcUnpaddedArrayQueueL3Pad<E>
Class Inheritance
Static Imports
io.netty5.util.internal.shaded.org.jctools.util.UnsafeAccess.UNSAFE, .UnsafeAccess.fieldOffset, io.netty5.util.internal.shaded.org.jctools.util.UnsafeRefArrayAccess.*

Note

This class was automatically generated by io.netty5.util.internal.shaded.org.jctools.queues.unpadded.JavaParsingUnpaddedQueueGenerator which can found in the jctools-build module. The original source file is SpmcArrayQueue.java.

Constructor Summary

AccessConstructor and Description
public
SpmcUnpaddedArrayQueue(final int capacity)

Method Summary

Modifier and TypeMethod and Description
public int
drain(final MessagePassingQueue.Consumer<E> c, final int limit)

Implements io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.drain.

Remove up to limit elements from the queue and hand to consume.
public int
drain(final MessagePassingQueue.Consumer<E> c)

Implements io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.drain.

Remove all available item from the queue and hand to consume.
public void
public int
fill(final MessagePassingQueue.Supplier<E> s, final int limit)

Implements io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.fill.

Stuff the queue with up to limit elements from the supplier.
public int
fill(final MessagePassingQueue.Supplier<E> s)

Implements io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.fill.

Stuff the queue with elements from the supplier.
public void
public boolean
offer(final E
not null, will throw NPE if it is
e
)

Implements io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.offer, java.util.Queue.offer.

Called from a producer thread subject to the restrictions appropriate to the implementation and according to the Queue#offer(Object) interface.
public E
peek()

Implements io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.peek, java.util.Queue.peek.

Called from the consumer thread subject to the restrictions appropriate to the implementation and according to the Queue#peek() interface.
public E
poll()

Implements io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.poll, java.util.Queue.poll.

Called from the consumer thread subject to the restrictions appropriate to the implementation and according to the Queue#poll() interface.
public boolean
relaxedOffer(E
not null, will throw NPE if it is
e
)

Implements io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.relaxedOffer.

Called from a producer thread subject to the restrictions appropriate to the implementation.
public E
relaxedPeek()

Implements io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.relaxedPeek.

Called from the consumer thread subject to the restrictions appropriate to the implementation.
public E
relaxedPoll()

Implements io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.relaxedPoll.

Called from the consumer thread subject to the restrictions appropriate to the implementation.
private E
removeElement(final E[] buffer, long index, final long mask)

Constructor Detail

SpmcUnpaddedArrayQueueback to summary
public SpmcUnpaddedArrayQueue(final int capacity)

Method Detail

drainback to summary
public int drain(final MessagePassingQueue.Consumer<E> c, final int limit)

Implements io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.drain.

Doc from io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.drain.

Remove up to limit elements from the queue and hand to consume. This should be semantically similar to:

M m;
  int i = 0;
  for(;i < limit && (m = relaxedPoll()) != null; i++){
    c.accept(m);
  }
  return i;

There's no strong commitment to the queue being empty at the end of a drain. Called from a consumer thread subject to the restrictions appropriate to the implementation.

Warning

Explicit assumptions are made with regards to Consumer#accept make sure you have read and understood these before using this method.

Returns:int

the number of polled elements

Annotations
@Override
drainback to summary
public int drain(final MessagePassingQueue.Consumer<E> c)

Implements io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.drain.

Doc from io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.drain.

Remove all available item from the queue and hand to consume. This should be semantically similar to:

M m;
while((m = relaxedPoll()) != null){
c.accept(m);
}
There's no strong commitment to the queue being empty at the end of a drain. Called from a consumer thread subject to the restrictions appropriate to the implementation.

Warning

Explicit assumptions are made with regards to Consumer#accept make sure you have read and understood these before using this method.

Returns:int

the number of polled elements

Annotations
@Override
drainback to summary
public void drain(final MessagePassingQueue.Consumer<E> c, final MessagePassingQueue.WaitStrategy w, final MessagePassingQueue.ExitCondition exit)

Implements io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.drain.

Doc from io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.drain.

Remove elements from the queue and hand to consume forever. Semantically similar to:

 int idleCounter = 0;
 while (exit.keepRunning()) {
     E e = relaxedPoll();
     if(e==null){
         idleCounter = wait.idle(idleCounter);
         continue;
     }
     idleCounter = 0;
     c.accept(e);
 }

Called from a consumer thread subject to the restrictions appropriate to the implementation.

Warning

Explicit assumptions are made with regards to Consumer#accept make sure you have read and understood these before using this method.

Annotations
@Override
fillback to summary
public int fill(final MessagePassingQueue.Supplier<E> s, final int limit)

Implements io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.fill.

Doc from io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.fill.

Stuff the queue with up to limit elements from the supplier. Semantically similar to:

for(int i=0; i < limit && relaxedOffer(s.get()); i++);

There's no strong commitment to the queue being full at the end of a fill. Called from a producer thread subject to the restrictions appropriate to the implementation

Warning

Explicit assumptions are made with regards to Supplier#get make sure you have read and understood these before using this method.

Returns:int

the number of offered elements

Annotations
@Override
fillback to summary
public int fill(final MessagePassingQueue.Supplier<E> s)

Implements io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.fill.

Doc from io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.fill.

Stuff the queue with elements from the supplier. Semantically similar to:

while(relaxedOffer(s.get());
There's no strong commitment to the queue being full at the end of a fill. Called from a producer thread subject to the restrictions appropriate to the implementation.

Unbounded queues will fill up the queue with a fixed amount rather than fill up to oblivion

Warning

Explicit assumptions are made with regards to Supplier#get make sure you have read and understood these before using this method.

Returns:int

the number of offered elements

Annotations
@Override
fillback to summary
public void fill(final MessagePassingQueue.Supplier<E> s, final MessagePassingQueue.WaitStrategy w, final MessagePassingQueue.ExitCondition e)

Implements io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.fill.

Doc from io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.fill.

Stuff the queue with elements from the supplier forever. Semantically similar to:


 int idleCounter = 0;
 while (exit.keepRunning()) {
     E e = s.get();
     while (!relaxedOffer(e)) {
         idleCounter = wait.idle(idleCounter);
         continue;
     }
     idleCounter = 0;
 }

Called from a producer thread subject to the restrictions appropriate to the implementation. The main difference being that implementors MUST assure room in the queue is available BEFORE calling Supplier#get

Warning

Explicit assumptions are made with regards to Supplier#get make sure you have read and understood these before using this method.

Annotations
@Override
offerback to summary
public boolean offer(final E e)

Implements io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.offer, java.util.Queue.offer.

Doc from io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.offer.

Called from a producer thread subject to the restrictions appropriate to the implementation and according to the Queue#offer(Object) interface.

Parameters
e:E

not null, will throw NPE if it is

Returns:boolean

true if element was inserted into the queue, false iff full

Annotations
@Override
peekback to summary
public E peek()

Implements io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.peek, java.util.Queue.peek.

Doc from io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.peek.

Called from the consumer thread subject to the restrictions appropriate to the implementation and according to the Queue#peek() interface.

Returns:E

a message from the queue if one is available, null iff empty

Annotations
@Override
pollback to summary
public E poll()

Implements io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.poll, java.util.Queue.poll.

Doc from io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.poll.

Called from the consumer thread subject to the restrictions appropriate to the implementation and according to the Queue#poll() interface.

Returns:E

a message from the queue if one is available, null iff empty

Annotations
@Override
relaxedOfferback to summary
public boolean relaxedOffer(E e)

Implements io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.relaxedOffer.

Doc from io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.relaxedOffer.

Called from a producer thread subject to the restrictions appropriate to the implementation. As opposed to Queue#offer(Object) this method may return false without the queue being full.

Parameters
e:E

not null, will throw NPE if it is

Returns:boolean

true if element was inserted into the queue, false if unable to offer

Annotations
@Override
relaxedPeekback to summary
public E relaxedPeek()

Implements io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.relaxedPeek.

Doc from io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.relaxedPeek.

Called from the consumer thread subject to the restrictions appropriate to the implementation. As opposed to Queue#peek() this method may return null without the queue being empty.

Returns:E

a message from the queue if one is available, null if unable to peek

Annotations
@Override
relaxedPollback to summary
public E relaxedPoll()

Implements io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.relaxedPoll.

Doc from io.netty5.util.internal.shaded.org.jctools.queues.MessagePassingQueue.relaxedPoll.

Called from the consumer thread subject to the restrictions appropriate to the implementation. As opposed to Queue#poll() this method may return null without the queue being empty.

Returns:E

a message from the queue if one is available, null if unable to poll

Annotations
@Override
removeElementback to summary
private E removeElement(final E[] buffer, long index, final long mask)