[
https://issues.apache.org/jira/browse/HTTPCORE-480?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16111108#comment-16111108
]
silver9886 commented on HTTPCORE-480:
-------------------------------------
you are right.so i change the source code as follows:
protected void timeoutCheck(final SelectionKey key, final long now, final
MinHoldTime minHoldTime) {
final IOSessionImpl session = (IOSessionImpl) key.attachment();
if (session != null) {
final int timeout = session.getSocketTimeout();
{color:red} if (minHoldTime.get() == 0 || minHoldTime.get() >
timeout ) {
minHoldTime.set(timeout);
}{color}
if (timeout > 0) {
if (session.getLastAccessTime() + timeout < now) {
sessionTimedOut(session);
}
}
}
}
the red color is added by me. in this case,the timeoutCheckInterval can be
adjust dynamicly
> improve the code in check timeout
> ---------------------------------
>
> Key: HTTPCORE-480
> URL: https://issues.apache.org/jira/browse/HTTPCORE-480
> Project: HttpComponents HttpCore
> Issue Type: Improvement
> Components: HttpCore NIO
> Affects Versions: 4.4.6
> Reporter: silver9886
> Priority: Minor
> Fix For: 4.4.7
>
> Attachments: AbstractIOReactor-change.png, BaseIOReactor-add
> class.png, BaseIOReactor-change.png
>
>
> change the code in org.apache.http.impl.nio.reactor.BaseIOReactor:
> if( (currentTime - this.lastTimeoutCheck) >=
> this.timeoutCheckInterval) ->
> if( (currentTime - this.lastTimeoutCheck) >= this.timeoutCheckInterval + 2)
> because :the code will run for a time and network tranport expend the time
> too. So currentTime - this.lastTimeoutCheck should be
> larger than selectTimeout in order to check timeout. In this case , This will
> make the code more efficiency.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]