< prev index next >
test/jdk/java/nio/channels/Selector/RegisterDuringSelect.java
Print this page
*** 23,32 ****
--- 23,35 ----
/* @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,45 ****
--- 39,50 ----
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,96 ****
--- 87,103 ----
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 >