[MacRuby] #1330: GCD freezes when sync is called from within async > 10000 times

MacRuby ruby-noreply at macosforge.org
Thu Jun 16 14:24:15 PDT 2011


#1330: GCD freezes when sync is called from within async > 10000 times
-----------------------------------------+----------------------------------
 Reporter:  niko.schwarz@…               |       Owner:  lsansonetti@…        
     Type:  defect                       |      Status:  new                  
 Priority:  blocker                      |   Milestone:                       
Component:  MacRuby                      |    Keywords:                       
-----------------------------------------+----------------------------------
 The following code snippet freezes for the loop being executed 10000 times
 (0 % cpu usage and doesn't finish), but finishes for 1000 times. It should
 never freeze.

 #!/usr/bin/env macruby -w


 @unzipQueue = Dispatch::Queue.new('ch.unibe.niko.unzipQueue')
 def extractFile(n)
     @unzipQueue.sync do

     end
 end

 group = Dispatch::Group.new
 (1..10000).each { | project |
     Dispatch::Queue.concurrent.async(group) do
        extractFile(project)
     end
 }
 group.wait

 I'm not aware of a workable workaround.

-- 
Ticket URL: <http://www.macruby.org/trac/ticket/1330>
MacRuby <http://macruby.org/>



More information about the macruby-tickets mailing list