@Override
    public boolean tryLock() {
      boolean interrupted = false;
      try {
        for (;;) {
          try {
            return tryLock(0, TimeUnit.MILLISECONDS);
          } catch (InterruptedException e) {
            interrupted = true;
          }
        }
      } finally {
        if (interrupted) {
          Thread.currentThread().interrupt();
        }
      }
    }
This ReadWriteLock is useful when different threads need to lock and unlock the read lock. This
is <b>NOT</b> a reentrant lock.
geode-core/src/main/java/org/apache/geode/internal/util/concurrent/SemaphoreReadWriteLock.java