[MacRuby-devel] [MacRuby] #620: Yielding a block inside a loop in a thread crashes the VM

MacRuby ruby-noreply at macosforge.org
Fri Jul 23 17:45:50 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 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/>



More information about the MacRuby-devel mailing list