[ https://issues.apache.org/jira/browse/HTTPCORE-480?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16110883#comment-16110883 ]
silver9886 commented on HTTPCORE-480: ------------------------------------- the new idea is this(i upload the diff png) : add a protected class MinHoldTime default value is 0. if( (currentTime - this.lastTimeoutCheck) >= this.timeoutCheckInterval + minholdTime.get()) { if (keys != null) { for (final SelectionKey key : keys) { timeoutCheck(key, currentTime,minholdTime); } } } in the timeoutCheck,we can get the min sockettimeout is all sessions and change the minholdTime.get() return value. 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(); if (minHoldTime.get() == 0 || minHoldTime.get() > timeout ) { minHoldTime.set(timeout); } if (timeout > 0) { if (session.getLastAccessTime() + timeout < now) { sessionTimedOut(session); } } } } > 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-unsubscr...@hc.apache.org For additional commands, e-mail: dev-h...@hc.apache.org