Versions Compared

Key

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

...

APIMethodsNotes
java.net.Socketconnect, read, write
java.net.ServerSocketaccept



java.nio.channels.SocketChannelconnect, read, writesocket adaptor connect, 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 accept also okay
java.nio.channels.DatagramChannelread, receive

socket adaptor receive also okay

write and send do not block

java.nio.channels.Pipe.SourceChannelread
java.nio.channels.Pipe.SinkChannelwrite

...

APIMethodsNotes
java.net.DatagramSocket/MulticastSocketreceiveNeed to investigate if receive can be done without synchronizing on the DatagramPacket (unspecified but long standing behavior)This will be resolved when DatagramSocket's implementation is replaced
java.net.InetAddress

getByName, getAllByName, ..

These methods block in NSS/equivalent 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.