mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-17 07:20:53 +07:00
32 lines
850 B
HTML
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> |