tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Remy Maucherat <r...@apache.org>
Subject Re: Comet changes
Date Wed, 09 May 2007 21:30:06 GMT
Filip Hanik - Dev Lists wrote:
> 1. CometEvent.notify is a servlet calling container method,not a 
> callback from the container

The servlet calls the "notify" method, right ?

> 2. Introduce a new EventType -> NOTIFY
> 3. Keep the sub event type -> WRITE_COMPLETE, instead of having to busy 
> poll CometEvent.canWrite()

I'd like to know where this "busy poll" for CometEvent.canWrite() comes 
from ;) That flag would be used like available is, such as:

while (event.canWrite()) { {
   os.write(randomData);
}
_notify(WRITE);

I am not ok to have to wait for an event following each write, since it 
has a huge cost (the canWrite flag is there to be able to do it only 
when it is needed).

> 4. Introduce CometEvent.setBlocking(true|false)
> 5. CometEvent.notify(NOW) to spawn an instant thread, for example, 
> changing blocking -> non blocking and the other way around should be 
> done on a Tomcat worker thread, too many race condition can occur from 
> doing it async with a background thread. Also useful for blocking writes 
> when that is desired

Changing blocking mode in the middle is a bit extreme, I think.

> and third scenario, useful when you want to end the request, but don't 
> want to wait for an IO event or a timeout.(event.close() -> 
> event.notify(NOW) or the other way around)
> EventType-> NOTIFY SubEventType->NOW

"notify" is not possible as a method name, any ideas ? I am ok with 
using the proposed notify subtypes.

Overall, I would be happier to not be doing non blocking IO. There will 
be a lot of ifs in the code, and it will be pretty complex to test.

Rémy

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


Mime
View raw message