Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

APIMethodsNotes
java.net.Socketconnect, read, writeRelies on JEP 353
java.net.ServerSocketaccept



java.nio.channels.SocketChannelconnect, read, writeconnect, read, and write on the socket adaptor obtained via SocketChannel::socket also okay
java.nio.channels.ServerSocketChannelacceptaccept on the socket adaptor obtained via ServerSocketChannel::socket also okay
java.nio.channels.DatagramChannelread, receivewrite and send do not block
java.nio.channels.Pipe.SourceChannelread
java.nio.channels.Pipe.SinkChannelwrite

...

APIMethodsNotes
java.net.DatagramSocketreceiveNeed to investigate if receive can be done without synchronizing on the DatagramPacket (unspecified but long standing behavior)
java.net.InetAddress

getByName, getAllByName, ..

These methods block in NSS/equivalent

. Several operations to explore including using a thread pool

and are invoked using a ManagedBlocker to allow the number of carrier threads to increase when fibers are blocked in these lookup mechanism. Alternative options being explored are using a separate thread pool for lookups or dusting off the JNDI DNS provider.

java.nio.channels.SelectorselectSelection operations are specified to synchronize on the selector and the selected-key set. May not be a concern as code using fibers should not need to use non-blocking I/O and Selectors.