public void clear() { allocator.clear(); for (Iterator<Page> it = pages.values().iterator(); it.hasNext(); ) { Page p = it.next(); it.remove(); freePage(p); } validatePages(); }
public void destroy() { allocator.clear(); for (Iterator<Page> it = pages.values().iterator(); it.hasNext(); ) { Page p = it.next(); it.remove(); freePage(p); } validatePages(); }
public void clear() { allocator.clear(); for (Iterator<Page> it = pages.values().iterator(); it.hasNext(); ) { Page p = it.next(); it.remove(); freePage(p); } validatePages(); }
public void destroy() { allocator.clear(); for (Iterator<Page> it = pages.values().iterator(); it.hasNext(); ) { Page p = it.next(); it.remove(); freePage(p); } validatePages(); }
public void release(long address) { int lastPage = pageIndexFor(address); for (int i = pages.size() - 1; i > lastPage; i--) { Page p = pages.remove(i); allocator.expand(-p.size()); freePage(p); } validatePages(); }
public void release(long address) { int lastPage = pageIndexFor(address); for (int i = pages.size() - 1; i > lastPage; i--) { Page p = pages.remove(i); allocator.expand(-p.size()); freePage(p); } validatePages(); }
private boolean expandData() { int newPageSize = nextPageSize(); if (getAllocatedMemory() + newPageSize > allocator.getMaximumAddress()) { return false; } Page newPage = pageSource.allocate(newPageSize, thief, victim, this); if (newPage == null) { if (LOGGER.isDebugEnabled()) { LOGGER.debug("Data area expansion from {} failed", getAllocatedMemory()); } return false; } else if (pages.put(pages.size(), newPage) == null) { validatePages(); allocator.expand(newPageSize); if (LOGGER.isDebugEnabled()) { long before = getAllocatedMemory(); long after = before + newPageSize; LOGGER.debug("Data area expanded from {}B to {}B [occupation={}]", toBase2SuffixedString(before), toBase2SuffixedString(after), ((float) allocator.occupied()) / after); } return true; } else { freePage(newPage); validatePages(); throw new AssertionError(); } }
validatePages(); break; } else { validatePages(); } else if (releasedPages.isEmpty()) { break; validatePages();
validatePages(); break; } else { validatePages(); } else if (releasedPages.isEmpty()) { break; validatePages();
private boolean expandData() { int newPageSize = nextPageSize(); if (getAllocatedMemory() + newPageSize > allocator.getMaximumAddress()) { return false; } Page newPage = pageSource.allocate(newPageSize, thief, victim, this); if (newPage == null) { if (LOGGER.isDebugEnabled()) { LOGGER.debug("Data area expansion from {} failed", getAllocatedMemory()); } return false; } else if (pages.put(pages.size(), newPage) == null) { validatePages(); allocator.expand(newPageSize); if (LOGGER.isDebugEnabled()) { long before = getAllocatedMemory(); long after = before + newPageSize; LOGGER.debug("Data area expanded from {}B to {}B [occupation={}]", toBase2SuffixedString(before), toBase2SuffixedString(after), ((float) allocator.occupied()) / after); } return true; } else { freePage(newPage); validatePages(); throw new AssertionError(); } }