void (Reader status, int iteration) { if (iteration > SPIN_TO_WAIT_FOR_LOCK) { status.blocked = true; try { throwIfImpatient(status); LockSupport.parkNanos(this, 1_000_000); // unparked by writeUnlock } finally { status.blocked = false; } } else { Thread.yield(); } }