void lockInterruptibly(final Integer permit) throws InterruptedException {
        if (permit == null) {
            throw new IllegalArgumentException();
        }
        sync.acquireInterruptibly(permit);
    }
void lockInterruptibly ( final Integer permit ) throws InterruptedException { if ( permit == null ) { throw new IllegalArgumentException ( ) ; } sync . acquireInterruptibly ( permit ) ; }
Acquire the exclusive lock allowing the acquisition to be interrupted.
@param permit - the permit Integer for this operation. May not be {@code null}.
@throws InterruptedException - if the acquiring thread is interrupted.
@throws IllegalArgumentException if {@code permit} is null.