Обновление: похоже, это вызвано перемещением rvm
с одной машины на другую без перекомпиляции - я не мог воспроизвести проблему в другом месте.Я не буду удалять вопрос, поскольку у кого-то может возникнуть подобная проблема.Спасибо всем за помощь!
Я пытаюсь запустить внешний процесс из отдельного потока, например:
def run
Thread.new do
Kernel.system('echo run')
end
end
loop do
puts 'loop begin'
run
sleep 5
puts 'loop end'
end
Хотя echo
работает успешно, основной поток, похоже, застрялна sleep
на неопределенный срок.Если я заменю Kernel.system
вызов на puts 'run'
, все будет нормально.
Есть идеи, почему это не работает?
Редактировать: Проблема возникает на моем локальном компьютере:
uname -a
Linux reportinghp 2.6.38-8-generic-pae #42-Ubuntu SMP Mon Apr 11 05:17:09 UTC 2011 i686 i686 i386 GNU/Linux
но не по другому:
uname -a
Linux asd 2.6.18-128.el5 #1 SMP Wed Jan 21 10:41:14 EST 2009 x86_64 x86_64 x86_64 GNU/Linux