提交 a3cbda83 编写于 作者: A alanb

8003253: TEST_BUG: java/nio/channels/AsynchronousChannelGroup/Unbounded.java...

8003253: TEST_BUG: java/nio/channels/AsynchronousChannelGroup/Unbounded.java hang intermittently [win]
Reviewed-by: chegar
上级 f4b0beeb
......@@ -36,6 +36,9 @@ public class Unbounded {
// number of concurrent completion handlers
static final int CONCURRENCY_COUNT = 256;
// set to true if an I/O operation fails
static volatile boolean failed;
public static void main(String[] args) throws Exception {
// all accepted connections are added to a queue
final ArrayBlockingQueue<AsynchronousSocketChannel> queue =
......@@ -51,6 +54,8 @@ public class Unbounded {
listener.accept((Void)null, this);
}
public void failed(Throwable exc, Void att) {
failed = true;
System.err.println("accept failed: " + exc);
}
});
System.out.println("Listener created.");
......@@ -94,6 +99,9 @@ public class Unbounded {
}
}
public void failed(Throwable exc, AsynchronousSocketChannel ch) {
failed = true;
System.err.println("read failed: " + exc);
completed(0, ch);
}
});
}
......@@ -104,6 +112,7 @@ public class Unbounded {
while (remaining > 0) {
AsynchronousSocketChannel ch = queue.take();
ch.write(ByteBuffer.wrap("welcome".getBytes())).get();
ch.shutdownOutput();
ch.close();
remaining--;
}
......@@ -112,5 +121,7 @@ public class Unbounded {
System.out.println("Waiting for all threads to reach barrier");
barrier.await();
listener.close();
if (failed)
throw new RuntimeException("I/O failed failed, see log for details");
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册