[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