< prev index next >

test/jdk/java/nio/channels/Selector/RegisterDuringSelect.java

Print this page

        

@@ -23,10 +23,13 @@
 
 /* @test
  * @bug 8201315
  * @summary Test that channels can be registered, interest ops can changed,
  *          and keys cancelled while a selection operation is in progress.
+ * @library /test/lib
+ * @build jdk.test.lib.Utils
+ * @run main RegisterDuringSelect
  */
 
 import java.io.IOException;
 import java.nio.channels.ClosedSelectorException;
 import java.nio.channels.Pipe;

@@ -36,10 +39,12 @@
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
 import java.util.concurrent.Phaser;
 
+import jdk.test.lib.Utils;
+
 public class RegisterDuringSelect {
 
     static Callable<Void> selectLoop(Selector sel, Phaser barrier) {
         return new Callable<Void>() {
             @Override

@@ -82,15 +87,17 @@
 
                 System.out.println("register ...");
                 SelectionKey key = sc.register(sel, SelectionKey.OP_READ);
                 if (!sel.keys().contains(key))
                     throw new RuntimeException("key not in key set");
+                Thread.sleep(Utils.adjustTimeout(50));
                 sel.wakeup();
                 barrier.arriveAndAwaitAdvance();
 
                 System.out.println("interestOps ...");
                 key.interestOps(0);
+                Thread.sleep(Utils.adjustTimeout(50));
                 sel.wakeup();
                 barrier.arriveAndAwaitAdvance();
 
                 System.out.println("cancel ...");
                 key.cancel();
< prev index next >