30 |
|
*/ |
31 |
|
static class Mutex implements Lock, java.io.Serializable { |
32 |
|
private static class Sync extends AbstractQueuedSynchronizer { |
33 |
< |
public int acquireExclusiveState(boolean isQueued, int acquires, Thread current) { |
33 |
> |
public int acquireExclusiveState(boolean isQueued, int acquires) { |
34 |
|
assert acquires == 1; // Does not use multiple acquires |
35 |
|
return state().compareAndSet(0, 1)? 0 : -1; |
36 |
|
} |
40 |
|
return true; |
41 |
|
} |
42 |
|
|
43 |
< |
public int acquireSharedState(boolean isQueued, int acquires, Thread current) { |
43 |
> |
public int acquireSharedState(boolean isQueued, int acquires) { |
44 |
|
throw new UnsupportedOperationException(); |
45 |
|
} |
46 |
|
|
61 |
|
} |
62 |
|
|
63 |
|
private final Sync sync = new Sync(); |
64 |
– |
public void lock() { sync.acquireExclusiveUninterruptibly(1); } |
64 |
|
public boolean tryLock() { |
65 |
< |
return sync.acquireExclusiveState(false, 1, null) >= 0; |
65 |
> |
return sync.acquireExclusiveState(false, 1) >= 0; |
66 |
> |
} |
67 |
> |
public void lock() { |
68 |
> |
sync.acquireExclusiveUninterruptibly(1); |
69 |
|
} |
70 |
|
public void lockInterruptibly() throws InterruptedException { |
71 |
|
sync.acquireExclusiveInterruptibly(1); |
119 |
|
} |
120 |
|
|
121 |
|
/** |
122 |
< |
* trylock on an unlocked lock succeeds |
122 |
> |
* tryLock on an unlocked lock succeeds |
123 |
|
*/ |
124 |
|
public void testTryLock() { |
125 |
|
Mutex rl = new Mutex(); |
158 |
|
} |
159 |
|
|
160 |
|
/** |
161 |
< |
* timed trylock is interruptible. |
161 |
> |
* timed tryLock is interruptible. |
162 |
|
*/ |
163 |
|
public void testInterruptedException2() { |
164 |
|
final Mutex lock = new Mutex(); |
181 |
|
|
182 |
|
|
183 |
|
/** |
184 |
< |
* Trylock on a locked lock fails |
184 |
> |
* TryLock on a locked lock fails |
185 |
|
*/ |
186 |
|
public void testTryLockWhenLocked() { |
187 |
|
final Mutex lock = new Mutex(); |
201 |
|
} |
202 |
|
|
203 |
|
/** |
204 |
< |
* Timed trylock on a locked lock times out |
204 |
> |
* Timed tryLock on a locked lock times out |
205 |
|
*/ |
206 |
|
public void testTryLock_Timeout() { |
207 |
|
final Mutex lock = new Mutex(); |