title: Do "nothing" while "condition"
body: <p>While browsing the code for the Java 8 version of ForkJoinPool(which has a few interesting changes from Java 7) I ran across this construct (<a href="http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/java/util/concurrent/ForkJoinPool.java#l3207" rel="noreferrer">here</a>):</p>
  
  <pre><code>do {} while (!blocker.isReleasable() &amp;&amp;
               !blocker.block());
  </code></pre>
  
  <p>I'm struggling with why you would write it like this instead of just</p>
  
  <pre><code>while (!blocker.isReleasable() &amp;&amp;
         !blocker.block());
  </code></pre>
  
  <p>Is it just a semantics/readability choice, since you could read the first construct as <code>do "nothing" while "conditions"</code>? Or is there some additional benefit I'm missing?</p>