Пример #1
0
  @Override
  public void init(int blockId, String metainf) {
    readSet.clear();
    writeSet.clear();

    // Lock according to the transaction irrevocable state
    if (irrevocableState) irrevocableAccessLock.writeLock().lock();
    else irrevocableAccessLock.readLock().lock();

    endTime = clock.get();
    startTime.set(endTime);
    status.set(((status.get() + (1 << STATUS_BITS)) & ~STATUS_MASK) | TX_ACTIVE);
    if (RO_HINT) {
      atomicBlockId = blockId;
      readWriteHint = readWriteMarkers.get(atomicBlockId);
    }
    attempts++;
    vr = (VR_THRESHOLD > 0 && VR_THRESHOLD <= attempts);
  }