[MacRuby-devel] [MacRuby] #620: Yielding a block inside a loop in a thread crashes the VM
MacRuby
ruby-noreply at macosforge.org
Thu Jul 22 22:53:19 PDT 2010
#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/>
More information about the MacRuby-devel
mailing list