--- old/test/java/nio/channels/Selector/Wakeup.java 2013-11-25 12:46:44.611176245 -0800 +++ new/test/java/nio/channels/Selector/Wakeup.java 2013-11-25 12:46:44.435176244 -0800 @@ -27,11 +27,7 @@ * @library .. */ -import java.io.*; -import java.net.*; -import java.nio.*; import java.nio.channels.*; -import java.util.Random; public class Wakeup { @@ -102,8 +98,8 @@ } int n = 0; while (sleeper.wakeups < checkedWakeups) { - sleep(50); - if ((n += 50) > 1000) { + sleep(1); + if ((n += 1) > 3000) { sleeper.finish(100); throw new Exception("Sleeper appears to be dead (" + checkedWakeups + ")"); @@ -120,7 +116,7 @@ // Interrupts can sometimes be delayed, so wait while (!sleeper.gotInterrupt) { sleep(50); - if ((n += 50) > 1000) { + if ((n += 50) > 3000) { sleeper.finish(100); throw new Exception("Interrupt never delivered"); } @@ -152,6 +148,8 @@ check(sleeper, false); // 2 .. 4 } + while (sleeper.entries < 5) + Thread.yield(); // Double wakeup synchronized (sleeper.gate) { sel.wakeup(); @@ -161,6 +159,8 @@ } check(sleeper, false); // 6 + while (sleeper.entries < 7) + Thread.yield(); // Interrupt synchronized (sleeper.gate) { sleeper.wantInterrupt = true;