13 |
|
|
14 |
|
public class LockSupportTest extends JSR166TestCase { |
15 |
|
public static void main(String[] args) { |
16 |
< |
junit.textui.TestRunner.run (suite()); |
16 |
> |
junit.textui.TestRunner.run (suite()); |
17 |
|
} |
18 |
|
public static Test suite() { |
19 |
< |
return new TestSuite(LockSupportTest.class); |
19 |
> |
return new TestSuite(LockSupportTest.class); |
20 |
|
} |
21 |
|
|
22 |
|
/** |
23 |
|
* park is released by unpark occurring after park |
24 |
|
*/ |
25 |
|
public void testPark() throws InterruptedException { |
26 |
< |
Thread t = new Thread(new CheckedRunnable() { |
27 |
< |
public void realRun() { |
26 |
> |
Thread t = new Thread(new CheckedRunnable() { |
27 |
> |
public void realRun() { |
28 |
|
LockSupport.park(); |
29 |
|
}}); |
30 |
|
|
38 |
|
* park is released by unpark occurring before park |
39 |
|
*/ |
40 |
|
public void testPark2() throws InterruptedException { |
41 |
< |
Thread t = new Thread(new CheckedRunnable() { |
42 |
< |
public void realRun() throws InterruptedException { |
41 |
> |
Thread t = new Thread(new CheckedRunnable() { |
42 |
> |
public void realRun() throws InterruptedException { |
43 |
|
Thread.sleep(SHORT_DELAY_MS); |
44 |
|
LockSupport.park(); |
45 |
|
}}); |
53 |
|
* park is released by interrupt |
54 |
|
*/ |
55 |
|
public void testPark3() throws InterruptedException { |
56 |
< |
Thread t = new Thread(new CheckedRunnable() { |
57 |
< |
public void realRun() { |
56 |
> |
Thread t = new Thread(new CheckedRunnable() { |
57 |
> |
public void realRun() { |
58 |
|
LockSupport.park(); |
59 |
|
}}); |
60 |
|
|
70 |
|
public void testPark4() throws InterruptedException { |
71 |
|
final ReentrantLock lock = new ReentrantLock(); |
72 |
|
lock.lock(); |
73 |
< |
Thread t = new Thread(new CheckedRunnable() { |
74 |
< |
public void realRun() { |
73 |
> |
Thread t = new Thread(new CheckedRunnable() { |
74 |
> |
public void realRun() { |
75 |
|
lock.lock(); |
76 |
|
LockSupport.park(); |
77 |
|
}}); |
86 |
|
* parkNanos times out if not unparked |
87 |
|
*/ |
88 |
|
public void testParkNanos() throws InterruptedException { |
89 |
< |
Thread t = new Thread(new CheckedRunnable() { |
90 |
< |
public void realRun() { |
89 |
> |
Thread t = new Thread(new CheckedRunnable() { |
90 |
> |
public void realRun() { |
91 |
|
LockSupport.parkNanos(1000); |
92 |
|
}}); |
93 |
|
|
100 |
|
* parkUntil times out if not unparked |
101 |
|
*/ |
102 |
|
public void testParkUntil() throws InterruptedException { |
103 |
< |
Thread t = new Thread(new CheckedRunnable() { |
104 |
< |
public void realRun() { |
103 |
> |
Thread t = new Thread(new CheckedRunnable() { |
104 |
> |
public void realRun() { |
105 |
|
long d = new Date().getTime() + 100; |
106 |
|
LockSupport.parkUntil(d); |
107 |
|
}}); |