package org.jctools.queues.blocking;
import org.jctools.queues.spec.ConcurrentQueueSpec;
import java.util.Queue;
public final class YieldTakeStrategy<E> implements TakeStrategy<E>
{
@Override
public void signal()
{
// Nothing to do
}
@Override
public E waitPoll(Queue<E> q) throws InterruptedException
{
E e;
while((e = q.poll()) == null)
{
Thread.yield();
}
return e;
}
@Override
public boolean supportsSpec(ConcurrentQueueSpec qs)
{
return true;
}
}