60 |
|
finally { lock.unlock() ; } |
61 |
|
} |
62 |
|
public void run() { |
63 |
– |
boolean runme; |
63 |
|
lock.lock(); |
64 |
|
try { |
65 |
< |
runme = !done; |
66 |
< |
if (!runme) |
67 |
< |
thread = Thread.currentThread(); |
65 |
> |
if (done) |
66 |
> |
return; |
67 |
> |
thread = Thread.currentThread(); |
68 |
|
} |
69 |
|
finally { lock.unlock() ; } |
71 |
– |
if (!runme) return; |
70 |
|
V v = null; |
71 |
|
Exception e = null; |
72 |
|
try { |
539 |
|
assertFalse(p.isTerminating()); |
540 |
|
p.execute(new CheckedRunnable() { |
541 |
|
public void realRun() throws InterruptedException { |
544 |
– |
threadStarted.countDown(); |
542 |
|
assertFalse(p.isTerminating()); |
543 |
+ |
threadStarted.countDown(); |
544 |
|
done.await(); |
545 |
|
}}); |
546 |
|
assertTrue(threadStarted.await(SMALL_DELAY_MS, MILLISECONDS)); |