docs: boolean lockSharedInterruptibly(final Integer permit, final long timeout, final TimeUnit unit) throws InterruptedException {
          if (permit == null) {
              throw new IllegalArgumentException();
          }
          return sync.tryAcquireSharedNanos(permit, unit.toNanos(timeout));
      }