ShortCircuitShm { public void free() { try { POSIX.munmap(baseAddress, mmappedLength); } catch (IOException e) { LOG.warn(this + ": failed to munmap", e); } LOG.trace(this + ": freed"); } ShortCircuitShm(ShmId shmId, FileInputStream stream); final ShmId getShmId(); synchronized final boolean isEmpty(); synchronized final boolean isFull(); synchronized final Slot allocAndRegisterSlot(
      ExtendedBlockId blockId); synchronized final Slot getSlot(int slotIdx); synchronized final Slot registerSlot(int slotIdx,
      ExtendedBlockId blockId); synchronized final void unregisterSlot(int slotIdx); SlotIterator slotIterator(); void free(); @Override String toString();  }
@Test(timeout=60000) public void testStartupShutdown() throws Exception { File path = new File(TEST_BASE, "testStartupShutdown"); path.mkdirs(); SharedFileDescriptorFactory factory = SharedFileDescriptorFactory.create("shm_", new String[] {path.getAbsolutePath()}); FileInputStream stream = factory.createDescriptor("testStartupShutdown", 4096); ShortCircuitShm shm = new ShortCircuitShm(ShmId.createRandom(), stream); shm.free(); stream.close(); FileUtil.fullyDelete(path); }