@Override public void unlock() { sync.tryReleaseShared(1); }
@Override public void lock() { sync.acquireShared(1); }