On 26/05/2015 18:41, Rémy Maucherat wrote:
<snip/>
My understanding of your response was that you are now happy with that
change. Shout if that is not the case.
> As far as I am concerned, the tweaking of the request line looks wrong.
>
> if (pos >= lastValid) {
> - if (useAvailableDataOnly) {
> - return false;
> + if (keptAlive) {
> + // Haven't read any request data yet so use the
> keep-alive
> + // timeout.
> +
> wrapper.setReadTimeout(wrapper.getEndpoint().getKeepAliveTimeout());
> }
>
> Ok to change the timeout if you like (although for NIO2 it's meaningless if
> the operation is already pending),
The keepAliveTimeout is only changed in the case where:
- keep-alive is enabled
- there is no more data in the read buffer
- a non-blocking read is required for the first byte (or more) of the
next request
In all other cases the soTimeout is used.
> but more importantly why is the "return false" gone ?
It was a left over from the attempt to make BIO support more connections
than it had threads by not doing an immediate read on a keep-alive
connection. It was no longer required. There is another "return false"
in the correct place in the next if block.
Mark
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]