Report abuse

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$depth = 0

def outer name
  if ($depth+=1) < 2000
    outer name
  else
    250.times {
      Thread.new do
        inner :inner, name, Thread.current
      end.join
    }
  end
end

def inner innerName, outerName, parent
  Thread.new do
    parent.join
    k = Proc.new {|n0, n1| q = n0.to_s << n1.to_s }
    k[innerName, outerName]
  end
end

outer :outer