hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "silver9886 (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HTTPCORE-480) improve the code in check timeout
Date Wed, 02 Aug 2017 15:35:00 GMT

    [ 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: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org


Mime
View raw message