#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 watson1978@…): In dispatcher.cpp: When removed flag of VM_BLOCK_THREAD from b->flags in rb_vm_yield_args(), * Other than a main thread * returned "*cached = true" in RoxorVM::uncache_or_create_block() At the above condition, VM_BLOCK_THREAD does not set to b->flags. So, calls yield at second time, assertion failed at "assert((b->flags & flags) == flags);" in rb_vm_prepare_block(). I atach a patch file. Please check it. -- Ticket URL: <http://www.macruby.org/trac/ticket/620#comment:3> MacRuby <http://macruby.org/>