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
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