private boolean doExecuteOperation(Operation lockOp, boolean interruptible)
      throws InterruptedException {

    ThreadRequestState oldThreadState = dls.getThreadRequestState().get();

    try {
      threadState.interruptible = interruptible;
      dls.getThreadRequestState().set(threadState);
      return lockOp.operate();
    } finally {
      threadState.interruptible = false;
      dls.getThreadRequestState().set(oldThreadState);
    }
  }
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