public void runWriter() throws Exception { new File(FILE_NAME).delete(); System.out.println("Waiting 3s, now start the reader"); Thread.sleep(3000); MemoryMappedFile mem = new MemoryMappedFile(FILE_NAME, FILE_SIZE); mem.putLong(NON_VOLATILE_FIELD, 1); mem.putLongVolatile(VOLATILE_FIELD, 2); mem.unmap(); }
public void runReader() throws Exception { MemoryMappedFile mem = new MemoryMappedFile(FILE_NAME, FILE_SIZE); long nonVolatileField = mem.getLong(NON_VOLATILE_FIELD); assertEquals(0, nonVolatileField, "Non Volatile Field"); long volatileField = mem.getLongVolatile(VOLATILE_FIELD); assertEquals(0, volatileField, "Volatile Field"); long start = System.currentTimeMillis(); while (true) { volatileField = mem.getLongVolatile(VOLATILE_FIELD); if (volatileField != 0) { break; } if (System.currentTimeMillis() - start > 3000) { System.out.println("TEST FAILED: timeout waiting for the volatile field to change"); return; } } nonVolatileField = mem.getLong(NON_VOLATILE_FIELD); assertEquals(1, nonVolatileField, "Non Volatile Field"); assertEquals(2, volatileField, "Volatile Field"); mem.unmap(); }