< prev index next >

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

Print this page

        

*** 546,561 **** Pipe.SourceChannel source = p.source(); // write to sink to ensure that the source is readable sink.write(messageBuffer()); - sink.configureBlocking(false); source.configureBlocking(false); ! SelectionKey key1 = sink.register(sel, SelectionKey.OP_WRITE); ! SelectionKey key2 = source.register(sel, SelectionKey.OP_READ); sel.selectNow(); assertTrue(sel.keys().contains(key1)); assertTrue(sel.keys().contains(key2)); assertTrue(sel.selectedKeys().contains(key1)); assertTrue(sel.selectedKeys().contains(key2)); --- 546,567 ---- Pipe.SourceChannel source = p.source(); // write to sink to ensure that the source is readable sink.write(messageBuffer()); source.configureBlocking(false); ! SelectionKey key1 = source.register(sel, SelectionKey.OP_READ); ! // make sure pipe source is readable before we do following checks. ! // this is sometime necessary on windows where pipe is implemented ! // as a pair of connected socket, so there is no guarantee that written ! // bytes on sink side is immediately available on source side. ! sel.select(); + sink.configureBlocking(false); + SelectionKey key2 = sink.register(sel, SelectionKey.OP_WRITE); sel.selectNow(); + assertTrue(sel.keys().contains(key1)); assertTrue(sel.keys().contains(key2)); assertTrue(sel.selectedKeys().contains(key1)); assertTrue(sel.selectedKeys().contains(key2));
< prev index next >