2010-01-27 15 views
5

En Ruby, necesito agotar el tiempo de ejecución de un bloque de código después de n milli segundos. Sé que la librería Ruby tiempo de espera es compatible con los tiempos de espera en segundos :Tiempo de espera de Ruby un bloque de código después de n * milli * segundos

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

es esto posible?

+1

Me pregunto qué pasaría si simplemente pasara un decimal a ese método. –

+1

Por decimales, Craig significa: 0.010, 0.5, etc. –

+3

Si mira la fuente al tiempo de espera, verá que pasa el argumento a Kernel # sleep, que tomará un decimal: "Suspende el hilo actual por la duración segundos (que puede ser cualquier número, incluido un flotador con segundos fraccionarios) ". Así que pasarle un decimal debería funcionar. –

Respuesta

9

Simplemente use un valor decimal para el tiempo de espera. Ejemplo durante n milisegundos:

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