timeout.rb имеет некоторые проблемы, которые в основном не всегда работают правильно, и я бы не рекомендовал его использовать. Отметьте Системный таймер или Терминатор вместо
На странице системного таймера, в частности, описывается, почему timeout.rb может завершиться ошибкой, в комплекте с красивыми картинками и всем остальным. Итог:
- Чтобы timeout.rb работал, интерпретатор Ruby должен запланировать только что созданный «убийственный» поток Ruby.
- M.R.I. 1.8, интерпретатор, используемый большинством приложений Ruby на производстве, реализует потоки Ruby как зеленые потоки.
- Хорошо известно ограничение зеленых потоков (работающих поверх одного собственного потока), когда зеленый поток выполняет блокирующий системный вызов основных операционных систем, ни один из зеленых потоков на виртуальной машине не будет работать пока системный вызов не вернется.