code: public final void acquireInterruptibly(int arg)
              throws InterruptedException {
          if (Thread.interrupted())
              throw new InterruptedException();
          if (!tryAcquire(arg))
              doAcquireInterruptibly(arg);
      }
docs: Acquires in exclusive mode, aborting if interrupted.
  Implemented by first checking interrupt status, then invoking
  at least once {@link #tryAcquire}, returning on
  success.  Otherwise the thread is queued, possibly repeatedly
  blocking and unblocking, invoking {@link #tryAcquire}
  until success or the thread is interrupted.  This method can be
  used to implement method {@link Lock#lockInterruptibly}.
  
  @param arg the acquire argument.  This value is conveyed to
  {@link #tryAcquire} but is otherwise uninterpreted and
  can represent anything you like.
  @throws InterruptedException if the current thread is interrupted