Skip to content

Instantly share code, notes, and snippets.

@mariofusco
Created September 11, 2023 10:02
Show Gist options
  • Save mariofusco/1d08c37b5d52cf5fd8a40b1f4d4dd8be to your computer and use it in GitHub Desktop.
Save mariofusco/1d08c37b5d52cf5fd8a40b1f4d4dd8be to your computer and use it in GitHub Desktop.
class JCToolsPool implements BufferRecyclerPool {
static final BufferRecyclerPool INSTANCE = new JCToolsPool();
private final MpmcUnboundedXaddArrayQueue<BufferRecycler> queue = new MpmcUnboundedXaddArrayQueue<>(8);
@Override
public BufferRecycler acquireBufferRecycler() {
BufferRecycler bufferRecycler = queue.poll();
return bufferRecycler != null ? bufferRecycler : new BufferRecycler();
}
@Override
public void releaseBufferRecycler(BufferRecycler recycler) {
queue.offer(recycler);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment