hc-dev mailing list archives

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

    [ https://issues.apache.org/jira/browse/HTTPCORE-480?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16111089#comment-16111089
] 

silver9886 edited comment on HTTPCORE-480 at 8/2/17 3:19 PM:
-------------------------------------------------------------

you don't konw  what i mean.

I don't want to  reduce frequency of the timeout check,I just say there is no need to check
the selectedKeys if there is no needed.
no matter what the value of the timeoutCheckInterval. because the selectTimeout = timeoutCheckInterval
 in the code , the code :
            if (keys != null) {
                for (final SelectionKey key : keys) {
                    timeoutCheck(key, currentTime,minholdTime);
                }
            }
will be executed every time the timeout check. that means the key in the keys will be checked
every time the timeout check.
for example , the session timeout set is 10 min.
but the key will be checked every 1s by default value.
but it should not be. .
if change the code as currentTime - this.lastTimeoutCheck) < this.timeoutCheckInterval
+ minholdTime.get(), the minholdTime.get() will return 10min.
then , the key in the keys will no be checked (of course , there is no need to check).

the user can set the selectTimeout as 10min. but it is not obviously as the user. the code
should be more intelligent and modify the minholdTime.get() dynamicly。
you know not every user can read the source code and change the selectTimeout .


was (Author: silver9886):
you don't konw  what i mean.

I don't want to  reduce frequency of the timeout check,I just say there is no need to check
the selectedKeys if there is no needed.
no matter what the value of the timeoutCheckInterval. because the selectTimeout = timeoutCheckInterval
 in the code , the code :
            if (keys != null) {
                for (final SelectionKey key : keys) {
                    timeoutCheck(key, currentTime,minholdTime);
                }
            }
will be executed every time the timeout check. that means the key in the keys will be checked
every time the timeout check.
for example , the session timeout set is 10 min.
but the key will be checked every 1s by default value.
but it should not be. .
if change the code as currentTime - this.lastTimeoutCheck) < this.timeoutCheckInterval
+ minholdTime.get(), the minholdTime.get() will return 10min.
then , the key in the keys will no be checked (of course , there is no need the check).

the user can set the selectTimeout as 10min. but it is not obviously as the user. the code
should be more intelligent and modify the minholdTime.get() dynamicly。
you know not every user can read the source code and change the selectTimeout .

> 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