#620: Yielding a block inside a loop in a thread crashes the VM
---------------------------------+------------------------------------------
Reporter: hongli...@… | Owner: lsansone...@…
Type: defect | Status: new
Priority: blocker | Milestone:
Component: MacRuby | Keywords:
---------------------------------+------------------------------------------
Comment(by watson1...@…):
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/>
_______________________________________________
MacRuby-devel mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel