#620: Yielding a block inside a loop in a thread crashes the VM ---------------------------------+------------------------------------------ Reporter: honglilai@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: ---------------------------------+------------------------------------------ Comment(by lsansonetti@…): Thanks for the detective work & patch! It seems clearer now. I wonder if the following patch isn't safer, though. {{{ Index: dispatcher.cpp =================================================================== --- dispatcher.cpp (revision 4369) +++ dispatcher.cpp (working copy) @@ -1338,7 +1338,7 @@ } else { assert(b->dvars_size == dvars_size); - assert((b->flags & flags) == flags); + assert((b->flags & flags) == (flags & ~VM_BLOCK_THREAD)); } b->proc = Qnil; }}} Actually, I wonder if we shouldn't get rid of this assert. -- Ticket URL: <http://www.macruby.org/trac/ticket/620#comment:4> MacRuby <http://macruby.org/>