[Seaside] Comet and CTHandler>>basicTerminate

Lukas Renggli renggli at gmail.com
Tue Feb 17 13:10:02 UTC 2009


> Could someone (maybe Lukas) explain to me why does it need to do the
> following lines(*) when a cometRequest is "delivered"?
>
> (*)CTHandler>>basicTerminate
>     thisContext swapSender: nil.
>     Processor activeProcess terminate

This avoids that the stack to is unwound that that ensure blocks are executed.

If that would not be done, then Seaside would generate an (empty)
response and pass this response back to the web server. The web server
would serialize this response onto the socket and flush and close the
connection. These are all things that we don't want: we don't want a
response to be created yet and we want the connection to stay open so
that we can later stream contents to the other end. The above code
makes that possible.

Lukas

-- 
Lukas Renggli
http://www.lukas-renggli.ch


More information about the seaside mailing list