// remove item from queue
if (_head.compareAndSet(head, next)) {
_size.decrementAndGet();
Packet packet = next.getPacket();
next.clearPacket();
// wake any blocked threads
if (_blockCount.get() > 0 && _size.get() < _blockMaxSize) {
synchronized (_blockLock) {