timeout.rb a quelques problèmes où fondamentalement cela ne fonctionne pas toujours bien, et je ne recommanderais pas de l'utiliser. Vérifiez System Timer ou Terminator à la place
La page System Timer décrit en particulier pourquoi timeout.rb peut échouer, avec de jolies images et tout. Bottom line est:
- Pour timeout.rb travailler, un fraîchement créé « homicide » fil Ruby doit être prévue par l'interpréteur Ruby.
- M.R.I. 1.8, l'interpréteur utilisé par la plupart des applications Ruby en production, implémente les threads Ruby comme des fils verts.
- Il est une limitation bien connue des threads verts (s'exécutant sur un seul thread natif) que lorsqu'un thread vert effectue un appel système bloquant sur les systèmes d'exploitation sous-jacents, aucun thread vert dans la machine virtuelle ne s'exécute jusqu'à ce que l'appel système revienne.