public void doRun() { GammaTxnLong ref = new GammaTxnLong(stm); // FatArrayTreeGammaTxn tx = new FatArrayTreeGammaTxn(stm); // FatArrayGammaTxn tx = new FatArrayGammaTxn(stm,1); FatMonoGammaTxn tx = new FatMonoGammaTxn( new GammaTxnConfig(stm) .setReadLockMode(LockMode.Exclusive) .setDirtyCheckEnabled(false)); long startMs = System.currentTimeMillis(); for (long k = 0; k < transactionCount; k++) { ref.openForWrite(tx, LOCKMODE_EXCLUSIVE).long_value++; tx.commit(); tx.hardReset(); // if (k % 100000000 == 0 && k > 0) { // System.out.printf("%s is at %s\n", getName(), k); // } } assertEquals(transactionCount, ref.atomicGet()); durationMs = System.currentTimeMillis() - startMs; System.out.printf("Multiverse> %s is finished in %s ms\n", getName(), durationMs); }