@Override public void addWaitee(final NodeID waitee, final TransactionID txnID) { final TransactionRecord record = getRecord(txnID); Assert.assertNotNull(record); final boolean added = record.addWaitee(waitee); Assert.eval(added); }
@Override public void addObjectsSyncedTo(final NodeID to, final TransactionID txnID) { TransactionRecord tr = null; while (tr == null) { synchronized (this.waitees) { tr = this.waitees.get(txnID); if (tr == null) { tr = new TransactionRecord(to); createRecord(txnID, tr); } else if (!tr.addWaitee(to)) { /* couldn't add the waitee, try again */ tr = null; } } } }