8003253: TEST_BUG: java/nio/channels/AsynchronousChannelGroup/Unbounded.java hang intermittently [win]
Reviewed-by: chegar
This commit is contained in:
parent
d0e329751f
commit
86d36e5d55
@ -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");
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user