On 28 June 2011 11:43, Cyrille Delaunay <[email protected]> wrote: > Ok, thank you henrik. > So I understand well that the announcement delivery handler will recast in > new thread. The point I do not get (and maybe its obvious, sorry in > advance), is why does it raise an error ? > When I look at the debugger, it seems that at one moment in the on:fork: > method we got a 'context' that is nil whereas it should not. > It is quite to understand what is problem (As I do not have a lot of > knowledge around that) > What VM you using? Can you try running using other VM?
> 2011/6/28 Henrik Johansen <[email protected]> >> >> On Jun 28, 2011, at 10:23 56AM, Cyrille Delaunay wrote: >> >> I got another issue related to that i think. >> In moose , at one moment in a announcement handling code, we are >> doing: Notification signal: 'Save successful!'. >> That has for consequence that the on:fork: cuts the stack and I end up >> with a 'MessageNotUnderstood: receiver of "sender" is nil'. >> So I don't know if the problem is that we are signaling a notification? >> >> Yes, if nothing inside the announcement handling code handles it, it will >> get handled by the announcement delivery handler which recasts it in new >> thread, for the reason Igor mentioned below. >> It's not safe to simply pass it on for handling by the code that made the >> announcement, if you want to ensure delivery. >> >> if yes what should we use to notify something ? >> >> ... an Announcement? >>> >>> It was because on:fork: cuts the stack. >>> If you signaling exception in your code, you should handle it before >>> leaving your #actionSelector method. >>> Otherwise you may put the rest recipients of announcement in danger >>> and that's why there #on:fork: to prevent that. >>> >>> >>> -- >>> Best regards, >>> Igor Stasenko AKA sig. >>> >> >> >> >> Cheers, >> Henry > -- Best regards, Igor Stasenko AKA sig.
