#664: MacRuby Crashes When Scheduling a Block to Run on the Main Thread from a Background Thread ---------------------------------+------------------------------------------ Reporter: dy...@… | Owner: lsansone...@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: ---------------------------------+------------------------------------------ Code:
def main_thread( &block ) block.performSelectorOnMainThread( 'call', withObject: nil, waitUntilDone: true ) end Thread.new do main_thread do [1,2,3].each {|i| puts i } end end Expected result: Output numbers to the console. Actual result: -Terminal- macruby test.rb Assertion failed: (errorcode == 0), function setInstance, file ThreadLocal.cpp, line 61. Abort trap -XCode (have to run the code twice for some reason, first time works) - Assertion failed: ((b->flags & flags) == flags), function rb_vm_prepare_block, file dispatcher.cpp, line 1786. Program received signal: “SIGABRT”. Backtrace (note that this was pasted into a ruby cocoa application and is triggered from a menu click): #0 0x00007fff81b35fe6 in __kill () #1 0x00007fff81bd6e32 in abort () #2 0x00007fff81bc3e74 in __assert_rtn () #3 0x00000001001427e8 in rb_vm_prepare_block () #4 0x000000010115a149 in ?? () #5 0x0000000100149331 in rb_vm_block_eval () #6 0x00007fff87ddc647 in __NSThreadPerformPerform () #7 0x00007fff869c9271 in __CFRunLoopDoSources0 () #8 0x00007fff869c7469 in __CFRunLoopRun () #9 0x00007fff869c6c2f in CFRunLoopRunSpecific () #10 0x00007fff80ca5a75 in _NSUnhighlightCarbonMenu () #11 0x00007fff80f250b8 in -[NSMenu _internalPerformActionForItemAtIndex:] () #12 0x00007fff80dd79d5 in -[NSCarbonMenuImpl _carbonCommandProcessEvent:handlerCallRef:] () #13 0x00007fff80c84b60 in NSSLMMenuEventHandler () #14 0x00007fff886f1bd7 in DispatchEventToHandlers () #15 0x00007fff886f1126 in SendEventToEventTargetInternal () #16 0x00007fff8870ed49 in SendEventToEventTarget () #17 0x00007fff8873dd45 in SendHICommandEvent () #18 0x00007fff8876aa1a in SendMenuCommandWithContextAndModifiers () #19 0x00007fff8876a9d4 in SendMenuItemSelectedEvent () #20 0x00007fff8876a8dc in FinishMenuSelection () #21 0x00007fff8874bcf9 in MenuSelectCore () #22 0x00007fff8874b461 in _HandleMenuSelection2 () #23 0x00007fff80b55b79 in _NSHandleCarbonMenuEvent () #24 0x00007fff80b296a2 in _DPSNextEvent () #25 0x00007fff80b28b41 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] () #26 0x00007fff80aee747 in -[NSApplication run] () #27 0x00007fff80ae7468 in NSApplicationMain () #28 0x0000000101147870 in ?? () #29 0x000000010014c806 in rb_vm_dispatch () #30 0x00000001011263e4 in ?? () #31 0x000000010016115f in rb_vm_run () #32 0x00000001000462a9 in ruby_run_node () #33 0x00000001001614dc in macruby_main () #34 0x0000000100001d40 in main (argc=1, argv=0x7fff5fbff5f0) at main.m:13 Macruby Version: MacRuby version 0.6 (ruby 1.9.0) [universal-darwin10.0, x86_64] Nightly from 04/20/2010. test.rb attached -- Ticket URL: <http://www.macruby.org/trac/ticket/664> MacRuby <http://macruby.org/> _______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel