@Test
public void testMultipleReadersAtATime() {

	final Lock testLock = new LockMRPlusSW();
	testLock.enterCriticalSection(true);
	final AtomicBoolean secondReaderHasLock = new AtomicBoolean();
	// new reader
	defaultThreadFactory().newThread(() -> {
		testLock.enterCriticalSection(true);
		secondReaderHasLock.set(true);
	}).start();
	// the only way to fail is to timeout
	await().untilTrue(secondReaderHasLock);
}