@Override protected boolean tryAcquire(int acquires) { int _state = getState(); if (_state == UNLOCKED) { if (compareAndSetState(_state, LOCKED)) { setExclusiveOwnerThread(Thread.currentThread()); return true; } } return false; }
@Override public boolean isHeldExclusively() { return getState() == LOCKED && (getExclusiveOwnerThread() == Thread.currentThread()); }
@Override protected boolean tryRelease(int releases) { if (Thread.currentThread() != getExclusiveOwnerThread()) { throw new IllegalMonitorStateException(); } setExclusiveOwnerThread(null); setState(UNLOCKED); return true; }
private int getStamp() { return getState(); }
@Override public void unlockWrite(final long stamp) { sync.release(DUMMY); }
@Override public void unlockRead(final long stamp) { sync.release(DUMMY); }
private int getStamp() { return getState(); }
@Override public long writeLock() { sync.acquire(DUMMY); return DUMMY; }
@Override public void unlockWrite(final long stamp) { sync.release(DUMMY); }
@Override public void unlockRead(final long stamp) { sync.release(DUMMY); }
@Override public long writeLock() { sync.acquire(DUMMY); return DUMMY; }
@Override public boolean isHeldExclusively() { return getState() == LOCKED && (getExclusiveOwnerThread() == Thread.currentThread()); }
@Override public long readLock() { sync.acquire(DUMMY); return DUMMY; }
@Override protected boolean tryRelease(int releases) { if (Thread.currentThread() != getExclusiveOwnerThread()) { throw new IllegalMonitorStateException(); } setExclusiveOwnerThread(null); setState(UNLOCKED); return true; }
@Override protected boolean tryAcquire(int acquires) { int _state = getState(); if (_state == UNLOCKED) { if (compareAndSetState(_state, LOCKED)) { setExclusiveOwnerThread(Thread.currentThread()); return true; } } return false; }
@Override public long readLock() { sync.acquire(DUMMY); return DUMMY; }