private void freeTable(Page tablePage) { tableSource.free(tablePage); }
private Page allocateTable(int size) { Page newTablePage = tableSource.allocate(size * ENTRY_SIZE * (Integer.SIZE / Byte.SIZE), tableAllocationsSteal, false, null); if (newTablePage != null) { ByteBuffer buffer = newTablePage.asByteBuffer(); byte[] zeros = new byte[1024]; buffer.clear(); while (buffer.hasRemaining()) { if (buffer.remaining() < zeros.length) { buffer.put(zeros, 0, buffer.remaining()); } else { buffer.put(zeros); } } buffer.clear(); } return newTablePage; }
private Page allocateTable(int size) { Page newTablePage = tableSource.allocate(size * ENTRY_SIZE * (Integer.SIZE / Byte.SIZE), tableAllocationsSteal, false, null); if (newTablePage != null) { ByteBuffer buffer = newTablePage.asByteBuffer(); byte[] zeros = new byte[1024]; buffer.clear(); while (buffer.hasRemaining()) { if (buffer.remaining() < zeros.length) { buffer.put(zeros, 0, buffer.remaining()); } else { buffer.put(zeros); } } buffer.clear(); } return newTablePage; }
private void freeTable(Page tablePage) { tableSource.free(tablePage); }
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(); } }
private void freePage(Page p) { if (released.isEmpty()) { pageSource.free(p); } else { released.peek().add(p); } }
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(); } }
private void freePage(Page p) { if (released.isEmpty()) { pageSource.free(p); } else { released.peek().add(p); } }