THREADS = 10

1000.times do
threads = []
THREADS.times do
threads << Thread.new do
sleep
end
end

if (size = Thread.list.size) != THREADS + 1
raise "wrong! (expected #{THREADS + 1} but was #{size})"
end

threads.each do |t|
Thread.pass until t.status == 'sleep'
t.wakeup
t.join
end
end