request for ChronicleStampedLock

This commit is contained in:
cotton-ben
2020-07-02 13:54:58 -04:00
parent bbd58003ae
commit ad67783cab
4 changed files with 18 additions and 3 deletions
@@ -0,0 +1 @@
image::../../../../../../../../../../../../Public/Pictures/file.png[]
@@ -88,6 +88,11 @@ public class DirtyReadOffender {
*/
} catch (Exception throwables) {
throwables.printStackTrace();
} finally {
System.out.println(
" ,,@t=" + System.currentTimeMillis() +
" DirtyReadOffender COMMITTED"
);
}
}
@@ -21,7 +21,7 @@ public class DirtyReadVictim {
long stamp = 0;
System.out.println(
" ,,@t=" + System.currentTimeMillis() +
" DirtyReadVictim CALLING offHeapLock.tryOptimisticRead()"
" DirtyReadVictim ENTERING offHeapLock.tryOptimisticRead()"
);
ChronicleStampedLock offHeapLock = new ChronicleStampedLock();
while ((stamp = offHeapLock.tryOptimisticRead()) == 0) {
@@ -29,7 +29,7 @@ public class DirtyReadVictim {
}
System.out.println(
" ,,@t=" + System.currentTimeMillis() +
" DirtyReadVictim CALLED offHeapLock.tryOptimisticRead()"
" DirtyReadVictim ENTERED offHeapLock.tryOptimisticRead()"
);
try {
chm.acquireUsing("369604101", bond);
@@ -48,6 +48,10 @@ public class DirtyReadVictim {
" DirtyReadVictim sleeping 60 seconds"
);
Thread.sleep(60_000);
System.out.println(
" ,,@t=" + System.currentTimeMillis() +
" DirtyReadVictim awakening"
);
} finally {
if (offHeapLock.validate(stamp)) {
System.out.println(
@@ -64,6 +68,10 @@ public class DirtyReadVictim {
" coupon=[" + coupon + "] is *DIRTY*. "
);
}
System.out.println(
" ,,@t=" + System.currentTimeMillis() +
" DirtyReadVictim EXITED offHeapLock.tryOptimisticRead()"
);
}
/**
* ben.cotton@rutgers.edu END
@@ -69,7 +69,7 @@ public class DirtyReadVictimTest {
" DirtyReadVictim OPTIMISTICALLY_READ coupon=" +
coupon + " "
);
// THIS Test will pass when ChronicleStampedLock is GA
Assert.assertFalse(Boolean.TRUE);
} else {
System.out.println(
@@ -78,6 +78,7 @@ public class DirtyReadVictimTest {
" must apply PESSIMISTIC_POLICY (dirty read endured)" +
" coupon=[" + coupon + "] is *DIRTY*. "
);
// THIS Test will execute pass when ChronicleStampedLock is GA
Assert.assertFalse(Boolean.FALSE);
}
}