У меня есть этот простой код рубина:
require 'rubygems'
require 'Thread'
queue = Queue.new
t = Thread.new do
loop do
user = queue.pop
puts "Unqueued #{user.nickname}, running all scripts..."
#do stuff
user.run_all
puts "Finished running all script for #{user.nickname}, sleeping for 2"
sleep 2
queue << user
end
end
t.join
Когда я пытаюсь запустить его, выдается следующее сообщение:
deadlock 0x10ec549f0: sleep:- - ./Machine.rb:9
deadlock 0x10ea46348: sleep:J(0x10ec549f0) (main) - ./Machine.rb:23
fatal: Thread(0x10ea46348): deadlock
from ./Machine.rb:23:in `join'
from ./Machine.rb:23
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:36:in `require'
from (irb):1
Что я делаю не так?
Спасибо