[Seaside] Comet and CTHandler>>basicTerminate

Lautaro Fernández evaklo at gmail.com
Wed Feb 18 16:27:37 UTC 2009

In our implementation of Comet we put the following:
    "This message is kind of a hack. It's goal is to escape from a 'block
ensure' (more specifically, an 'error block ensure' ). This method will
avoid to send a response into the browser and therefore we will have a live
stream with the web browser.

    The method that this method hack, is
Swazoo.HTTPConnection>>produceResponseFor: aSwazooTask, specifically to only
do the following line (look <<):
Swazoo.HTTPConnection>>produceResponseFor: aSwazooTask
        for:     [aSwazooTask response:
                    (self server answerTo: aSwazooTask request). << THIS
            {..this code will not be executed...} ]
    on: Error
        do: [:ex | {..this code neither...}]
See this link for more information:

I know this is hardcoded with Swazoo, but maybe is useful for somebody else.

2009/2/18 Cédrick Béler <cdrick65 at gmail.com>

> sounds like a nice class comment for CTHandler ?
> 2009/2/17 Lukas Renggli <renggli at gmail.com>
>> > 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
>> _______________________________________________
>> seaside mailing list
>> seaside at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> --
> Cédrick
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

Luke LAut SkyFernadezWalker
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/seaside/attachments/20090218/c9546dc4/attachment.htm

More information about the seaside mailing list