mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-16 22:51:17 +07:00
26 lines
787 B
HTML
26 lines
787 B
HTML
<html>
|
|
<body>
|
|
Reports <code>java.util.concurrent.locks.Condition.await()</code> not being called inside a loop.
|
|
<p>
|
|
<code>await()</code> and related methods are normally used to suspend a thread until some condition becomes true.
|
|
As the thread could have been woken up for a different reason,
|
|
the condition should be checked after the <code>await()</code> call returns.
|
|
A loop is a simple way to achieve this.
|
|
</p>
|
|
<p><b>Example:</b></p>
|
|
<pre><code>
|
|
void acquire(Condition released) throws InterruptedException {
|
|
released.await();
|
|
}
|
|
</code></pre>
|
|
<p>Good code should look like this:</p>
|
|
<pre><code>
|
|
void acquire(Condition released) throws InterruptedException {
|
|
while (acquired) {
|
|
released.await();
|
|
}
|
|
}
|
|
</code></pre>
|
|
<!-- tooltip end -->
|
|
</body>
|
|
</html> |