/** * Frees a random chunk from the Chunk list. */ private void free() { Chunk chunk = chunks.remove(random.nextInt(chunks.size())); totalAllocation -= chunk.getSize(); /* * Chunk is filled here but another thread may have already grabbed it so we * cannot validate the fill. */ chunk.release(); }
/** * Frees a random chunk from the Chunk list. */ private void free() { Chunk chunk = chunks.remove(random.nextInt(chunks.size())); totalAllocation -= chunk.getSize(); /* * Chunk is filled here but another thread may have already grabbed it so we * cannot validate the fill. */ chunk.release(); }
@Override public void release() { Iterator<Long> iter = this.iterator(); while (iter.hasNext()) { Long address = iter.next(); if (address != null) { Chunk.release(address.longValue(), true); } } this.clear(); }
@Override public void release() { if (this.address != 0) { Chunk.release(this.address, true); this.address = 0; } } }
private static void releaseBlock(long addr) { final int addCount = getAddCount(addr); for (int i=0; i < addCount; i++) { long ref = getRefs(addr, i); if (ref != NULL && ref != REMOVED) { Chunk.release(ref, true); } } } @Override
@Override public void release() { if (this.address != 0) { Chunk.release(this.address, true); this.address = 0; } } }
public void release() { for (int i=0; i < this.addCount; i++) { long addr = this.refs[i]; if (addr != NULL && addr != REMOVED) { Chunk.release(addr, true); } } } /**
@Override public void release() { long e = this.head; while (e != NULL) { releaseBlock(e); long releaseAddr = e; e = getDown(e); Chunk.release(releaseAddr, true); } this.head = NULL; }
private static void releaseBlock(long addr) { final int addCount = getAddCount(addr); for (int i=0; i < addCount; i++) { long ref = getRefs(addr, i); if (ref != NULL && ref != REMOVED) { Chunk.release(ref, true); } } } @Override
@Override public void releaseByteSource(int positionFromEnd) { Long address = this.remove(positionFromEnd); if (address != null) { Chunk.release(address.longValue(), true); } }
@Override public void release() { Iterator<Long> iter = this.iterator(); while (iter.hasNext()) { Long address = iter.next(); if (address != null) { Chunk.release(address.longValue(), true); } } this.clear(); }
private static void releaseBlock(long addr) { final int addCount = getAddCount(addr); for (int i=0; i < addCount; i++) { long ref = getRefs(addr, i); if (ref != NULL && ref != REMOVED) { Chunk.release(ref, true); } } } @Override
@Override public void release() { if (this.address != 0) { Chunk.release(this.address, true); this.address = 0; } } }
@Override public void releaseByteSource(int positionFromEnd) { Long address = this.remove(positionFromEnd); if (address != null) { Chunk.release(address.longValue(), true); } }
@Override public void release() { long e = this.head; while (e != NULL) { releaseBlock(e); long releaseAddr = e; e = getDown(e); Chunk.release(releaseAddr, true); } this.head = NULL; }
@Override public void releaseByteSource(int positionFromEnd) { Long address = this.remove(positionFromEnd); if (address != null) { Chunk.release(address.longValue(), true); } }
private static void releaseAddress(@Released long ohAddress) { if (isOffHeap(ohAddress)) { Chunk.release(ohAddress, true); } }
private void releaseAddressAndReset(int position) { long address = this.addresses[position]; if(address != 0) { Chunk.release(address, true); this.addresses[position] = 0; } } }
@Override public void release() { long e = this.head; while (e != NULL) { releaseBlock(e); long releaseAddr = e; e = getDown(e); Chunk.release(releaseAddr, true); } this.head = NULL; }
private void releaseAddressAndReset(int position) { long address = this.addresses[position]; if(address != 0) { Chunk.release(address, true); this.addresses[position] = 0; } } }