@Override
 protected boolean tryLock(
     VisibleOwnerRefCountingReentrantLock lock, long timeout, TimeUnit unit, Object unused)
     throws InterruptedException {
   return lock.tryLock(timeout, unit);
 }
 @Override
 protected void lock(VisibleOwnerRefCountingReentrantLock lock, Object lockOwner) {
   lock.lock();
 }
 @Override
 protected void unlock(VisibleOwnerRefCountingReentrantLock l, Object unused) {
   l.unlock();
 }