Files
openide/java/java-impl/resources/inspectionDescriptions/WaitNotInLoop.html
Leonid Shalupov 40795fe787 IJI-2422: community/java: move resources under resources root
GitOrigin-RevId: 8b2b63fc6db476ca0c2cfe5cadd84db6c4236d0f
2025-02-05 04:43:28 +00:00

32 lines
850 B
HTML

<html>
<body>
Reports calls to <code>wait()</code> that are not made inside a loop.
<p>
<code>wait()</code> is normally used to suspend a thread until some condition becomes true.
As the thread could have been waken up for a different reason,
the condition should be checked after the <code>wait()</code> call returns.
A loop is a simple way to achieve this.
</p>
<p><b>Example:</b></p>
<pre><code>
class BoundedCounter {
private int count;
synchronized void inc() throws InterruptedException {
if (count >= 10) wait();
++count;
}
}
</code></pre>
<p>Good code should look like this:</p>
<pre><code>
class BoundedCounter {
private int count;
synchronized void inc() throws InterruptedException {
while (count >= 10) wait();
++count;
}
}
</code></pre>
<!-- tooltip end -->
</body>
</html>