Vyom, > On 12 Oct 2017, at 10:01, vyom tewari <vyom.tew...@oracle.com> wrote: > > Hi Roger, > > Thanks for the review, i incorporated all review comments from you > except("you can use ExtendedSocketOptions.TCP_QUICKACK to check for the > option to omit without > embedding the name."). ExtendedSocketOptions.java is part of "jdk.net" so > we can not directly use it in java.base, hence i used the option name to > filter "TCP_QUICKACK". > > Please find the update > webrev(http://cr.openjdk.java.net/~vtewari/8145635/webrev0.4/index.html).
This looks much better. Some suggested wordings of the JDK-specific option: /** * Disable Delayed Acknowledgements. * * <p> This socket option can be used to reduce or disable delayed * acknowledgments (ACKs). * * <p> The value of this socket option is a {@code Boolean} that represents * whether the option is enabled or disabled. The socket option is specific * to stream-oriented sockets using the TCP/IP protocol. * * <p> The exact semantics of this socket option are socket type and system * dependent. * * <p> When TCP_QUICKACK is enabled, ACKs are sent immediately, rather than * delayed if needed in accordance to normal TCP operation. This option is * not permanent, it only enables a switch to or from TCP_QUICKACK mode. * * <p> Subsequent operations of the TCP protocol will once again enter/leave * TCP_QUICKACK mode depending on internal protocol processing and factors * such as delayed ack timeouts occurring and data transfer. * * @since 18.3 */ -Chris. P.S. D’oh, sorry, of course you need the paragraph tags. > Thanks, > > Vyom > > > On Wednesday 11 October 2017 08:46 PM, Roger Riggs wrote: >> Hi Vyom, >> >> Comments: >> >> - update copyright >> - use @since 18.3 instead of @since 10 >> >> - ExtendedSocketOptions.java: 265,269 include the "TCP_QUICKACK" in the >> exception messages. >> >> Line 144: if you are going to keep the assert, add a explanation about >> how it could happen. >> I'd remove the assert. >> >> - The first sentence should be a complete sentence: "TCP_QUICKACK socket >> option enables sending TCP/IP acks immediately" or similar. >> >> - A reference to the appropriate TCP/IP spec for quickack would be a good >> addition. At least the RFC # and section. >> - 85: space after "." The phrasing is a bit odd in places in the javadoc. >> - line 81/82 the value is true to enable and false to disable. >> - This phrase is confusing: "it only enables a switch to or from >> TCP_QUICKACK mode"; >> Since it is set on a socket, it should remain set on that socket until it >> is changed. >> >> - 203: be consistent in using enable/disable in parameters, etc even for >> private methods. >> "on" -> "enable" >> >> PlainDatagramSocketImpl: 89: >> Why create a new set with zero or one items just to throw it away? >> Use the iterator to add only the non-TCP_QUICKACK options to the supported >> options. >> Also, you can use ExtendedSocketOptions.TCP_QUICKACK to check for the >> option to omit without >> embedding the name. >> >> >> Sockets.java: >> - The initialization of isQuickAckAvailable might be cleaner as an nested >> static class >> that initializes the value in its static initializer. That would delay >> the init til needed >> and avoid extra flags. >> >> LinuxSocketOptions.java: >> - the native methods should be static; since the instance is unused. >> >> - line 41: the return type should be Boolean >> >> - line 46: the return type of getQuickAck0 should be Boolean like the >> argument to set. >> >> - line 34: using JNU_ThrowByNameWithLastError directly is sufficient; if >> the errno does not have a string unix supplies "unknown error nnn". >> >> >> Regards, Roger >> >> On 10/10/2017 2:58 PM, Chris Hegarty wrote: >>> Vyom, >>> >>> What about suggestion 1) below, the name of the socket option? >>> >>> -Chris. >>> >>>> On 27 Sep 2017, at 09:56, vyom tewari <vyom.tew...@oracle.com> wrote: >>>> >>>> Hi Chris, >>>> >>>> Thanks for review, please find the latest >>>> webrev(http://cr.openjdk.java.net/~vtewari/8145635/webrev0.2/index.html). >>>> I incorporated review comments from you and re-base the patch to our >>>> consolidated repo(jdk10/master). >>>> >>>> Thanks, >>>> >>>> Vyom >>>> >>>> >>>> On Monday 25 September 2017 01:57 AM, Chris Hegarty wrote: >>>>> Vyom, >>>>> >>>>>> On 11 Sep 2017, at 16:38, vyom tewari <vyom.tew...@oracle.com> wrote: >>>>>> >>>>>> Hi All, >>>>>> >>>>>> As jdk.net API already moved out of java.base, Please review the below >>>>>> code change for jdk10. >>>>>> >>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8145635 >>>>>> Webrev: http://cr.openjdk.java.net/~vtewari/8145635/webrev0.1/index.html >>>>>> >>>>> This looks quite good. Some comments: >>>>> >>>>> 1) I wonder if we should just call the option TCP_QUICKACK, rather than >>>>> SO_QUICKACK? Similar to TCP_NODELAY. >>>>> >>>>> 2) I think LinuxSocketOptions.h is largely unnecessary, if we do 1) above. >>>>> >>>>> 3) Java_jdk_net_LinuxSocketOptions_getQuickAck could return jint, rather >>>>> than jobject, thus avoiding the need for createBoolean. The conversation >>>>> can happen in the Java layer. Can you please reduce the lint length in >>>>> this file, by wrapping similar to the style of the Solaris version. >>>>> >>>>> 4) ExtendedSocketOptions.java >>>>> - drop the <p>, they are unnecessary. >>>>> - I think, similar to TCP_NODELAY, the spec should say that the >>>>> options is TCP specific. From TCP_NODELAY: "The socket option is specific >>>>> to stream-oriented sockets using the TCP/IP protocol.” >>>>> - "In TCP_QUICKACK mode”, maybe “When the option is enabled…” >>>>> >>>>> -Chris. >>>>> >>>>> >> >