359 while (System.nanoTime() - startTime < 250000000) { 360 synchronized(this){}; - 361 latch++; + 361 latch = (latch + 1) % Integer.MAX_VALUE; 362 }
This block may be not CPU friendly as it may loop a large amount of times in a very short period (250milli).
What's the usage of line 360? Just for some computation? 367 counter += latch; The counter variable may be overflow too. Xuelei On 9/21/2016 8:57 AM, Jamil Nimeh wrote:
Hello all, This fixes a bug found in stress testing where on faster CPUs the latch can overflow resulting in a negative array index. The fix avoids the overflow by resetting the latch to 0 when it reaches Integer.MAX_VALUE - 1 and will continue increasing from there. Bug: https://bugs.openjdk.java.net/browse/JDK-8049516 Webrev: http://cr.openjdk.java.net/~jnimeh/reviews/8049516/webrev.01/ Thanks, --Jamil