Hi Charles,
On Jan 21, 2011, at 9:57 PM, Charles Oliver Nutter wrote:
> I'm curious about this example in Queue#apply's rdoc:
>
> * gcdq = Dispatch::Queue.new('doc')
> * @result = []
> * gcdq.apply(5) {|i| @result[i] = i*i }
> * p @result #=> [0, 1, 4, 9, 16, 25]
>
> apply is said to issue the jobs in parallel, so this would be making
> concurrent updates to the @result array. Are simple arrays in MacRuby
> thread-safe?
My assumption was that doing a parallel assign:
result[i] = i*i
would be safe, since it always accessed a unique portion of memory, but doing a
serial append:
result << i*i
would not. But that may have been a mistake on my part, since the size (at
least) needs to be updated. Anyone know better?
-- Ernie P.
>
> - Charlie
> _______________________________________________
> MacRuby-devel mailing list
> [email protected]
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
_______________________________________________
MacRuby-devel mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel