Exemplo n.º 1
0
 @Override
 public Boolean call() throws Exception {
   WriteSet writeSet = WriteSet.getLocal();
   ReadSet readSet = ReadSet.getLocal();
   if (!writeSet.tryLock(TIMEOUT, TimeUnit.MILLISECONDS)) {
     LOGGER.info("writeSet try lock returned false");
     return false;
   }
   for (LockObject<?> x : readSet.getList()) {
     if (x.lock.isLocked() && !x.lock.isHeldByCurrentThread()) {
       /*
       try {
       	LOGGER.info("Resolving contention at time of read consistency check");
       	ContentionManager.getLocal().resolve(Transaction.getLocal(), x.locker);
       }
       catch (AbortedException e) {
       	return false;
       }
       */
       return false;
     }
     if (x.stamp > VersionClock.getReadStamp()) {
       LOGGER.info("Inconsistent version error: Stamp > Version CLOCK");
       return false;
     }
   }
   return true;
 }