RFR: 8245194: Unix domain socket channel implementation [v20]

Michael McMahon michaelm at openjdk.java.net
Wed Oct 14 13:21:27 UTC 2020


On Wed, 14 Oct 2020 11:04:08 GMT, Daniel Fuchs <dfuchs at openjdk.org> wrote:

>> Michael McMahon has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev
>> excludes the unrelated changes brought in by the merge/rebase. The pull request contains 22 additional commits since
>> the last revision:
>>  - Merge branch 'master' into unixdomainchannels
>>  - - reorganised the channel impls back into SocketChannelImpl and ServerSocketChannelImpl
>>    - removed the new Unix domain socket events and folded the behavior into the existing socket events
>>    - implemented other comments from Alan on Oct 11.
>>  - unixdomainchannels: updates from Chris's review 9 Oct 2020
>>  - unixdomainchannels:
>>    - updated property name
>>    - added JFR unit test
>>  - Merge branch 'master' into unixdomainchannels
>>  - - update after Alan's review on Oct 4
>>    - includes API change required by JDK-8251952
>>    - original CSR for the overall change will be resubmitted with
>>      all api changes consolidated based on this update
>>  - - simplified Copy.gmk to CAT source files directly
>>    - renamed net.properties source files to all be net.properties
>>  - unixdomainchannels: error in the last commit in make/modules/java.base/Copy.gmk
>>  - unixdomainchannels:
>>    (1) rename UnixDomainHelper to UnixDomainSocketsUtil
>>    (2) remove hardcoded /tmp and /var/tmp paths from UnixDomainSocketsUtil
>>    (3) replace (2) with documented system/networking properties
>>    (4) Small update to UnixDomainSocketAddress API
>>    (5) CSR for (3) and (4) submitted at JDK-8253930
>>    (6) Update build to generate net.properties from shared net.properties.common
>>        plus platform specific additions.
>>  - Merge branch 'master' into unixdomainchannels
>>  - ... and 12 more: https://git.openjdk.java.net/jdk/compare/21a8f700...7f677d5a
>
> src/java.base/share/classes/sun/net/ext/ExtendedSocketOptions.java line 63:
> 
>> 61:     /** Return the, possibly empty, set of extended socket options available. */
>> 62:     public final Set<SocketOption<?>> unixOptions() { return unixOptions; }
>> 63:
> 
> Could the name of the method - or alternatively its API doc comment - be improved to make it clear that these options
> are **Unix Domain protocol** specific option (as opposed to Unix OS specific option). For instance, the field and
> method could be named: `unixDomainOptions` instead of `unixOptions`?

I think unixDomainOptions would be reasonable and the docs could be updated also to clearly define what each set is.

> src/java.base/share/classes/sun/nio/ch/ServerSocketAdaptor.java line 96:
> 
>> 94:     @Override
>> 95:     public InetAddress getInetAddress() {
>> 96:         InetSocketAddress local = (InetSocketAddress)ssc.localAddress();
> 
> Idle wondering as to whether ServerSocketChannelImpl could be parameterized to avoid casts...
> `... class ServerSocketChannelImpl<SA extends SocketAddress> extends ...`
> Or maybe that would just make things more complex. Have you considered it and rejected it?

Hmm. Not sure how much it would improve clarity, though it would remove some annoying casts. Let me look into it.

-------------

PR: https://git.openjdk.java.net/jdk/pull/52


More information about the hotspot-jfr-dev mailing list