public static String read(Transactional transactional, TransBlob transBlob) { return Txn.calculateRead(transactional, ()->{ return transBlob.getString() ; }) ; }
public static String read(Transactional transactional, TransBlob transBlob) { return Txn.calculateRead(transactional, ()->{ return transBlob.getString() ; }) ; }
void threadRead(String expected) { AtomicReference<String> result = new AtomicReference<>() ; ThreadTxn.threadTxnRead(transactional, ()-> { String s = transBlob.getString() ; result.set(s); }).run(); Assert.assertEquals(expected, result.get()); }
void threadRead(String expected) { AtomicReference<String> result = new AtomicReference<>() ; ThreadTxn.threadTxnRead(transactional, ()-> { String s = transBlob.getString() ; result.set(s); }).run(); Assert.assertEquals(expected, result.get()); }
@Test public void transBlob_1() { String str = "Hello World" ; write(transactional, transBlob, str) ; String str2 = read(transactional, transBlob) ; assertEquals(str, str2) ; String str3 = transBlob.getString() ; assertEquals(str, str3) ; }
@Test public void transBlob_1() { String str = "Hello World" ; write(transactional, transBlob, str) ; String str2 = read(transactional, transBlob) ; assertEquals(str, str2) ; String str3 = transBlob.getString() ; assertEquals(str, str3) ; }
@Test public void transBlob_3() { String str1 = "one" ; String str2 = "two" ; write(transactional, transBlob, str1) ; String s1 = transBlob.getString() ; assertEquals(str1, s1) ; String s2 = read(transactional, transBlob) ; assertEquals(str1, s2) ; // Start now. ThreadAction tt = ThreadTxn.threadTxnRead(transactional, ()-> { String sr = transBlob.getString() ; Assert.assertEquals(str1, sr) ; }) ; write(transactional, transBlob, str2) ; Txn.executeWrite(transactional, ()->{ transBlob.setString(str2) ; String s = transBlob.getString() ; assertEquals(str2, s) ; }) ; // Run later, after W transaction. tt.run(); } }
@Test public void transBlob_3() { String str1 = "one" ; String str2 = "two" ; write(transactional, transBlob, str1) ; String s1 = transBlob.getString() ; assertEquals(str1, s1) ; String s2 = read(transactional, transBlob) ; assertEquals(str1, s2) ; // Start now. ThreadAction tt = ThreadTxn.threadTxnRead(transactional, ()-> { String sr = transBlob.getString() ; Assert.assertEquals(str1, sr) ; }) ; write(transactional, transBlob, str2) ; Txn.executeWrite(transactional, ()->{ transBlob.setString(str2) ; String s = transBlob.getString() ; assertEquals(str2, s) ; }) ; // Run later, after W transaction. tt.run(); } }