tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Filip Hanik - Dev Lists <devli...@hanik.com>
Subject Re: Executing user code in Poller Thread for NIO connector on timeout (executor is specified in server.xml)
Date Mon, 22 Oct 2007 17:47:15 GMT
absolutely, the other place that issues a timeout, does a dispatch, this 
one should do it too.

Filip

Christophe Pierret wrote:
> Hi all,
> I noticed that user code gets executed inside NIO Poller thread in case
> of timeout error, if the executor is specified in server.xml.
> Since there is very few poller threads, I guess it is not really a good
> idea that the user code run in case of timeouts is run within the Poller
> thread.
>  
> Here the call stack where it occurs for me (baseline 6.0.14).
> http-23-Poller-0@e9d daemon, priority=5, in group 'main', status:
> 'RUNNING'
>    error():149, Halley.java
>    event():68, Halley.java  =>Implementation of CometProcessor.event()
>    internalDoFilterEvent():470, ApplicationFilterChain.java
>    doFilterEvent():363, ApplicationFilterChain.java
>    event():422, StandardWrapperValve.java
>    event():252, StandardContextValve.java
>    event():179, StandardHostValve.java
>    event():200, ValveBase.java
>    event():128, StandardEngineValve.java
>    event():175, CoyoteAdapter.java
>    event():749, Http11NioProcessor.java
>    event():637, Http11NioProtocol.java
>    run():2009, NioEndpoint.java
>    processSocket():1127, NioEndpoint.java
>    cancelledKey():1377, NioEndpoint.java
>    timeout():1611, NioEndpoint.java
>    run():1452, NioEndpoint.java
>    run():595, Thread.java
>  
> Do you think that this code could be executed within an "executor"
> thread instead ?
>  
> I think that the following lines (in cancelledKey(),
> NioEndpoint.java)may be changed from:
> processSocket(ka.getChannel(), status, false);//don't dispatch if the
> lines below are cancelling the key
> if (status == SocketStatus.TIMEOUT ) return; // don't close on comet
> timeout
>  
> to:
> processSocket(ka.getChannel(), status, status ==
> SocketStatus.TIMEOUT);//don't dispatch if the lines below are cancelling
> the key
> if (status == SocketStatus.TIMEOUT ) return; // don't close on comet
> timeout
>  
>  
> Best regards,
> Christophe Pierret
>
>   
> ------------------------------------------------------------------------
>
> No virus found in this incoming message.
> Checked by AVG Free Edition. 
> Version: 7.5.488 / Virus Database: 269.15.5/1084 - Release Date: 10/21/2007 3:09 PM
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Mime
View raw message