Take the following piece of code:
------------------------------------------------------
count = 0
arr = []
10.times do |i|
  arr[i] = Thread.new {

    sleep(1)
    Thread.current["mycount"] = count
    count += 1
  }
end
arr.each {|t| t.join; print t["mycount"], ", " }
puts "count = #{count}"
------------------------------------------------------
It produces the following output:

9, 8, 7, 6, 5, 4, 3, 2, 1, 0, count = 10

I dont understand how it does this. This is what I would have expected
the output to have been as a result of each iteration of the #times
loop.

arr[0] count 0
arr[1] count 1
..
arr[9] count 9

so that when it reaches the line starting arr.each it would produce the
output

0, 1, 2, 3, 4, 5, 6, 7, 8, 9 count = 10; which is obviously the reverse
of what was actually printed. What am I missing here?

Thanxs in advance.

-- 
Posted via http://www.ruby-forum.com/.