Revision: 4379 http://trac.macosforge.org/projects/ruby/changeset/4379 Author: lsansonetti@apple.com Date: 2010-07-24 11:58:05 -0700 (Sat, 24 Jul 2010) Log Message: ----------- fix a crash when yielding a block inside a loop in a thread (#620, patch contributed by watson1978 at gmail.com) Modified Paths: -------------- MacRuby/trunk/dispatcher.cpp Modified: MacRuby/trunk/dispatcher.cpp =================================================================== --- MacRuby/trunk/dispatcher.cpp 2010-07-24 15:44:15 UTC (rev 4378) +++ MacRuby/trunk/dispatcher.cpp 2010-07-24 18:58:05 UTC (rev 4379) @@ -1210,7 +1210,9 @@ } ~Finally() { vm->add_current_block(b); - b->flags &= ~VM_BLOCK_THREAD; + if (vm == RoxorVM::main) { + b->flags &= ~VM_BLOCK_THREAD; + } } } finalizer(vm, b); @@ -1338,7 +1340,7 @@ } else { assert(b->dvars_size == dvars_size); - assert((b->flags & flags) == (flags & ~VM_BLOCK_THREAD)); + assert((b->flags & flags) == flags); } b->proc = Qnil;