Greetings,On Mon, Mar 14, 2011 at 6:57 AM, Matt Massicotte <massicotte@apple.com> wrote:If you find this exception-shifting behavior troubling, please open a ticket.What bugs me about the behavior in this case is that if the exact same operation is done on the main thread, it throws a very nice, normal Ruby exception trace, and I know immediately what boneheaded move I made. :) If it happens on an NSThread, it gives an absolutely opaque 'SIGABRT' on the main thread.
I'll see if I can create a simple example that demonstrates it.
Could you explain why introducing the begin/rescue pair that is good programming practice?Historically I've found that when I have a consumer thread that does 'work', I don't want an unanticipated failure of any one work unit to prevent future work units from being processed. So at the top level of any thread action (in this case, in the method triggered on NSTimer firing) I wrap the work-processing code in a rescue block, so if an unexpected failure happens, I log it, and move on to the next work unit. In some (most?) systems an uncaught exception will kill off the thread, and apparently something similar is true in MacRuby.
_______________________________________________MattHope that helps.-- Morgan SchweersOn Mar 13, 2011, at 6:31 PM, Morgan Schweers wrote:_______________________________________________Greetings,Today I Learned :) if a thread throws an exception that isn't rescued by the top of the thread, it'll crash the app's main thread with 'Program received signal: “SIGABRT”.'That's been plaguing me since I started doing MacRuby development; every time I tried to start up multiple threads, the app became incredibly fragile and, unlike the main thread, it wouldn't show ruby traces.Now I just wrap threads in begin/rescue blocks, and I'm all good. Good programming practice anyway, but the failure mode is unobvious if you don't.Hopefully this helps someone else!-- Morgan
MacRuby-devel mailing list
MacRuby-devel@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
_______________________________________________
MacRuby-devel mailing list
MacRuby-devel@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
MacRuby-devel mailing list
MacRuby-devel@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel