private boolean executeOperation(Operation lockOp) {
    for (;;) {
      dls.getCancelCriterion().checkCancelInProgress(null);
      boolean interrupted = Thread.interrupted();
      try {
        return doExecuteOperation(lockOp, false);
      } catch (InterruptedException e) {
        interrupted = true;
        continue; // keep trying
      } finally {
        if (interrupted) {
          Thread.currentThread().interrupt();
        }
      }
    } // for
  }
Constructs a new <code>DistributedMemberLock</code>.

@param dls the instance of <code>DistributedLockService</code> to use
@param key name of the key for this lock
@param leaseTimeout number of milliseconds to hold a lock before automatically releasing it
@param reentryPolicy defines behavior for lock reentry
@throws NullPointerException if dls or key is null
geode-core/src/main/java/org/apache/geode/distributed/internal/locks/DistributedMemberLock.java