Re: seaside Digest, Vol 105, Issue 12

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Re: seaside Digest, Vol 105, Issue 12

Henrik Sperre Johansen
On 09.09.2011 14:00, [hidden email] wrote:
2011/9/9 Tudor Girba [hidden email]:
> Igor and Stef can provide more details.
>
> The reason for forking is that even if one announcement breaks, the others should still be announced.
You don't need forking to do this. A simple exception handler would
work very well and not break any code. It just doesn't make you look
clever.

cheers
Philippe

Which is why it was changed, after discussion with Lukas.
It only forks UnhandledErrors now, before delivering the remaining.
As long as there is no abnormal termination, it will work just as before.
If any subscribers would abnormally terminate though, the ifCurtailed: kicks in, and (was supposed to) ensure delivers to remaining subscribers.

If something in Seaside relies on such behaviour (like terminating current process in order for subsequent subscribers to not receive the announcement) that will be broken.
I don't think messing with announcement delivery should be considered a good control flow mechanism though.

What Esteban encountered as an error on some VM's was a pure bug I made in the ifCurtailed: block (by using after: instead of copyAfter:), and had nothing to do with forking.
Why some VM's considered the delivery abnormally terminated, while others didn't, I have no idea though...
(The error he got only happens when the ifCurtailed block is invoked).

Cheers,
Henry

_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside