Replacing OneToOneConcurrentArrayQueue with ArrayDeque since it is thread local by danielcranford · Pull Request #201 · lmdbjava/lmdbjava
import java.nio.ByteBuffer; import java.util.ArrayDeque;
import jnr.ffi.Pointer; import org.agrona.DirectBuffer; import org.agrona.MutableDirectBuffer; import org.agrona.concurrent.OneToOneConcurrentArrayQueue; import org.agrona.concurrent.UnsafeBuffer;
/**
private DirectBufferProxy() { }
@Override protected DirectBuffer allocate() { final OneToOneConcurrentArrayQueue<DirectBuffer> q = BUFFERS.get(); final ArrayDeque<DirectBuffer> q = BUFFERS.get(); final DirectBuffer buffer = q.poll();
if (buffer != null && buffer.capacity() >= 0) {
@Override protected void deallocate(final DirectBuffer buff) { final OneToOneConcurrentArrayQueue<DirectBuffer> q = BUFFERS.get(); final ArrayDeque<DirectBuffer> q = BUFFERS.get(); q.offer(buff); }