RFR 8175814: HttpClient protocol version needs unspecified value

Michael McMahon michael.x.mcmahon at oracle.com
Fri Apr 28 10:24:49 UTC 2017


Hi Chris.

On 27/04/2017, 18:56, Chris Hegarty wrote:
>> On 27 Apr 2017, at 16:41, Michael McMahon<michael.x.mcmahon at oracle.com>  wrote:
>>
>> ...
>>> 4) AsyncConnection / Queue
>>>
>>>    I find the term ‘block’ confusing here. It seems that the input channel,
>>>    in the AsyncSSLDelegate implicitly puts itself into “blocking” mode
>>>    when performing the initial handshake. The unblocking happens then
>>>    after successful negotiation of ALPN. Maybe some term to indicate
>>>    no higher-level callback? OR something else.
>> As far as Queue is concerned, it either works asynchronously or blocking.
>> If asynchronous then data is passed on through the callback. If blocking
>> then data has to be obtained by calling the blocking take() call.
>>
>> Within AsyncSSLDelegate, the handshake is then done in blocking mode
>> but when finished it switches to the async mode.
>>
>> Does that make it any clearer?
> Thanks, it does. For my understanding …
>
> The Queue type is basically an unbounded blocking queue. Adding items
> will never block, since the queue can grow unbounded. Taking items will
> block when the queue becomes empty. There are methods to poll, and to
> push back items to the head. The queue also has a facility to register a
> context-free trigger / callback when an item is added to the queue. The
> callback has no knowledge of the queue or its internals, it just knows that
> an item has been added.

Right. The producing side never blocks. The consuming side works either
through a callback or from a blocking take.
> How about block/unblock be renamed disable/enable [Put] Callback/Listener?

Ok, how about enable/disable Callback?

> I’m less sure what, if anything, AsyncConnection.unblock could be renamed
> to, since it has no knowledge of blocking or callbacks in the first place.
It would have to be enableCallback() from above. AsyncConnection does define
the callback API as well though.

Thanks,
Michael
> I’m just trying to move away from the overloading of “block” in this context.
>
> -Chris.


More information about the net-dev mailing list