592593594595596597598599600601602
try { tester1.start(); tester2.start(); tester1.finishTest(); tester2.finishTest(); DatabaseImpl dbImpl = DbInternal.dbGetDatabaseImpl(exampleDb); assertTrue(dbImpl.verify(new VerifyConfig(), dbImpl.getEmptyStats())); } catch (Throwable T) { fail("testDuplicateDeadlock caught: " + T); }
187188189190191192193194195196197
}; tester1.start(); tester2.start(); tester1.finishTest(); tester2.finishTest(); } /* * Some actions hold the major inlist latch, but can provoke additions or * removals of objects from the inlist. For example, the evictor may cause
345346347348349350351352353354355
data.setData(TestUtils.getTestArray(2)); myDb.put(t1, key, data); t1.commitNoSync(); try { thread.finishTest(); } catch (Throwable e) { e.printStackTrace(); fail(e.toString()); } myDb.close();
240241242243244245246247248249250
try { writer.finishTest(); } catch (Throwable e) { try { reader.finishTest(); } catch (Throwable ignore) { } e.printStackTrace(); fail(e.toString()); }
247248249250251252253254255256257
e.printStackTrace(); fail(e.toString()); } try { reader.finishTest(); } catch (Throwable e) { e.printStackTrace(); fail(e.toString()); }
163164165166167168169170171172173
}; writer.start(); reader.start(); writer.finishTest(); reader.finishTest(); close(); System.out.println("SUCCESS"); }
185186187188189190191192193194195
tester1.start(); tester2.start(); tester3.start(); tester1.finishTest(); tester2.finishTest(); tester3.finishTest(); } /** * Grab two read locks, hold them, and make sure that a write lock * waits for them to be released.
263264265266267268269270271272273
tester1.start(); tester2.start(); tester3.start(); tester1.finishTest(); tester2.finishTest(); tester3.finishTest(); } /** * Acquire two read locks, put a write locker behind the two * read lockers, and then queue a read locker behind the writer.
361362363364365366367368369370371
tester3.start(); tester4.start(); tester1.finishTest(); tester2.finishTest(); tester3.finishTest(); tester4.finishTest(); } /** * Acquire two read locks for two transactions, then request a write * lock for a third transaction. Then request a write lock for one
439440441442443444445446447448449
tester1.start(); tester2.start(); tester3.start(); tester1.finishTest(); tester2.finishTest(); tester3.finishTest(); } /** * Acquire a read lock, then request a write lock for a second * transaction in non-blocking mode. Make sure it fails.