--- jsr166/src/test/tck/AbstractQueuedSynchronizerTest.java 2003/12/28 21:56:18 1.1 +++ jsr166/src/test/tck/AbstractQueuedSynchronizerTest.java 2004/01/02 21:06:38 1.7 @@ -30,40 +30,36 @@ public class AbstractQueuedSynchronizerT */ static class Mutex implements Lock, java.io.Serializable { private static class Sync extends AbstractQueuedSynchronizer { - public int acquireExclusiveState(boolean isQueued, int acquires, Thread current) { + boolean isLocked() { return getState() == 1; } + + public boolean tryAcquireExclusive(boolean isQueued, int acquires) { assert acquires == 1; // Does not use multiple acquires - return state().compareAndSet(0, 1)? 0 : -1; + return compareAndSetState(0, 1); } - public boolean releaseExclusiveState(int releases) { - state().set(0); + public boolean tryReleaseExclusive(int releases) { + setState(0); return true; } - public int acquireSharedState(boolean isQueued, int acquires, Thread current) { - throw new UnsupportedOperationException(); - } - - public boolean releaseSharedState(int releases) { - throw new UnsupportedOperationException(); - } - public void checkConditionAccess(Thread thread, boolean waiting) { - if (state().get() == 0) throw new IllegalMonitorStateException(); + if (getState() == 0) throw new IllegalMonitorStateException(); } Condition newCondition() { return new ConditionObject(); } private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException { s.defaultReadObject(); - state().set(0); // reset to unlocked state + setState(0); // reset to unlocked state } } - + private final Sync sync = new Sync(); - public void lock() { sync.acquireExclusiveUninterruptibly(1); } public boolean tryLock() { - return sync.acquireExclusiveState(false, 1, null) >= 0; + return sync.tryAcquireExclusive(false, 1); + } + public void lock() { + sync.acquireExclusiveUninterruptibly(1); } public void lockInterruptibly() throws InterruptedException { sync.acquireExclusiveInterruptibly(1); @@ -73,7 +69,7 @@ public class AbstractQueuedSynchronizerT } public void unlock() { sync.releaseExclusive(1); } public Condition newCondition() { return sync.newCondition(); } - public boolean isLocked() { return sync.state().get() != 0; } + public boolean isLocked() { return sync.isLocked(); } public boolean hasQueuedThreads() { return sync.hasQueuedThreads(); } } @@ -117,7 +113,7 @@ public class AbstractQueuedSynchronizerT } /** - * trylock on an unlocked lock succeeds + * tryLock on an unlocked lock succeeds */ public void testTryLock() { Mutex rl = new Mutex(); @@ -156,7 +152,7 @@ public class AbstractQueuedSynchronizerT } /** - * timed trylock is interruptible. + * timed tryLock is interruptible. */ public void testInterruptedException2() { final Mutex lock = new Mutex(); @@ -179,7 +175,7 @@ public class AbstractQueuedSynchronizerT /** - * Trylock on a locked lock fails + * TryLock on a locked lock fails */ public void testTryLockWhenLocked() { final Mutex lock = new Mutex(); @@ -199,7 +195,7 @@ public class AbstractQueuedSynchronizerT } /** - * Timed trylock on a locked lock times out + * Timed tryLock on a locked lock times out */ public void testTryLock_Timeout() { final Mutex lock = new Mutex();