• Home
    • View
    • Login
    This page
    • Normal
    • Export PDF
    • Export Word
    • Attachments
    • Page Information

    Loading...
  1. Dashboard
  2. Loom
  3. Main
  4. This page on blocking operations can be removed.

Page History

Versions Compared

Old Version 20

changes.mady.by.user Alan Bateman

Saved on Dec 04, 2019

compared with

New Version 21

changes.mady.by.user Alan Bateman

Saved on Jan 16, 2020

  • Previous Change: Difference between versions 19 and 20
  • Next Change: Difference between versions 21 and 22
  • View Page History

Key

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

...

APIMethodsNotes
java.net.Socketconnect, read, write
java.net.ServerSocketaccept
java.net.DatagramSocket/MulticastSocketreceivesend does not block



java.nio.channels.SocketChannelconnect, read, writesocket adaptor connect, read, and write also okay
java.nio.channels.ServerSocketChannelacceptsocket adaptor 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
java.net.InetAddressgetByName, getAllByName, ..

These methods currently off load name/address resolution to a background thread pool where threads block in the underlying NSS/equivalent. An alternative name service implementation for InetAddress is being developed in the sandbox (aefimov-dns-client-branch) that will be virtual thread friendly.

...

The following blocking operations are not currently virtual thread friendly; these methods pin the carrier thread when the operation blocks.

This will be resolved when DatagramSocket's implementation is replaced. The foundation work for this replacement has done in the main line for JDK 14.
APIMethodsNotesjava.net.DatagramSocket/MulticastSocketreceive
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.
Overview
Content Tools
ThemeBuilder

Terms of Use
• License: GPLv2
• Privacy • Trademarks • Contact Us

Powered by a free Atlassian Confluence Open Source Project License granted to https://www.atlassian.com/software/views/opensource-community-additional-license-offer. Evaluate Confluence today.

  • Kolekti ThemeBuilder Powered by Atlassian Confluence 8.5.23
  • Kolekti ThemeBuilder printed.by.atlassian.confluence
  • Report a bug
  • Atlassian News
Atlassian
Kolekti ThemeBuilder EngineAtlassian Confluence
{"serverDuration": 188, "requestCorrelationId": "0178490f8c0245d9"}