Hi,

To summarize, I propose the following additions in the Comet functionality for the next Tomcat 6.0 release (the various names are proposals, I am not very good at names):
- per event timeout becomes mandatory
- small refactoring of the timeout callback using an action code rather than a request attribute (the reason for using request attributes for sendfile is because I needed it in the Servlet layer, which doesn't have access to the action callback) - refactor a bit the poller for the APR endpoint and add per connection timeout support; I also don't like the multiple poller threads design anymore - it is only useful on Windows, and would be replaced by using a single thread with multiple pollers and a shorter pollTime - notify method on the event (wakes a connection from the endpoint, and invoke a NOTIFY event)
- add NOTIFY as a new CometEvent.EventType
- add a CometEvent.disableReadPolling() method which will signal that the connection should not be put in the poller, but should still be checked for timeout - EOF as a new ComentEvent.EventSubType, subtype of CometEvent.EventType .END (will be called when the endpoint signals a read); after getting this event, the CometAdapter could automagically call CometEvent.disableReadPolling() to avoid problems if the client somehow sends additional bytes (they don't belong to this request)
- possible improvements for available() to be proposed by Filip

These should be relatively easy to implement, and should allow supporting additional use cases.

I will not propose any non blocking IO changes at this time, as I don't have a solution where the complexity would not increase quite a bit for both Tomcat and the "Servlet" code. So since it is blocking IO, certain uses will still need to make use of more than one thread for output (to compensate for the risk of blocking).

Comments ?

Rémy

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to