I want to call a common enumerator from different threads. When I do the following,
enum = (0..1000).to_enum t1 = Thread.new do p enum.next sleep(1) end
You can use Queue
queue = Queue.new (0..1000).map(&queue.method(:push)) t1 = Thread.new do while !queue.empty? p queue.pop(true) sleep(0.1) end end t2 = Thread.new do while !queue.empty? p queue.pop(true) sleep(0.1) end end t1.join t2.join