2010-01-27 3 views
5

In Ruby, ho bisogno di timeout l'esecuzione di un blocco di codice dopo n milli secondi. So che la libreria Ruby Timeout supporta timeout in secondi:Ruby timeout un blocco di codice dopo n * milli * secondi

http://ruby-doc.org/stdlib/libdoc/timeout/rdoc/index.html

è possibile?

+1

Mi chiedo cosa succederebbe se si passasse semplicemente un decimale in quel metodo. –

+1

In base a decimale, Craig significa: 0.010, 0.5, ecc. –

+3

Se si guarda all'origine per timeout, si vedrà che passa solo l'argomento a Kernel # sleep, che avrà un decimale: "Sospende il thread corrente per la durata secondi (che può essere qualsiasi numero, incluso un Float con secondi frazionari). " Quindi passare un decimale dovrebbe funzionare. –

risposta

9

Basta usare un valore decimale per il timeout. Esempio per n millisecondi:

Timeout::timeout(n/1000.0) { sleep(100) }