@Override public LockResult lockCheck(Transaction txn, byte[] key) throws ViewConstraintException { LockResult r1 = mFirst.lockCheck(txn, key); if (r1 == LockResult.UNOWNED) { return r1; } LockResult r2 = mSecond.lockCheck(txn, key); return r2 == LockResult.UNOWNED ? r2 : r1.commonOwned(r2); }
private static LockResult lockCombine(Transaction txn, LockResult r1, LockResult r2) { if (r2.isAcquired()) { if (r1 == r2) { txn.unlockCombine(); } return r2; } else { return r1.isAcquired() ? r1 : r1.commonOwned(r2); } }
private LockResult resultCombine(Transaction txn, LockResult r1, LockResult r2) { if (r1.isAcquired()) { if (r1 == r2) { txn.unlockCombine(); } return r1; } else if (r2.isAcquired()) { return r2; } else { return r1.commonOwned(r2); } }
@Override public LockResult skip(long amount) throws IOException { if (amount == 0) { return mFirst.skip(0).commonOwned(mSecond.skip(0)); } return ViewUtils.skipWithLocks(this, amount); }