From: Caleb Tennis Date: 2005-12-12T22:04:02+09:00 Subject: [ANN] - posixtimer 0.1 http://rubyforge.org/projects/posixtimer/ Here's my first RubyForge release, a small utility that wraps around the POSIX timer API. This is only available for systems which implement timer_create() calls - Linux being where I've tested it on. It's very simple: create a new timer, arm it, and after a certain number of seconds it will trigger a signal to your application: timer = Posix::Timer.new timer.arm(10.0) # do some stuff for 10 seconds 10 seconds later => SignalException You can specify a different signal than the default SIGALRM: Posix::Timer.new("USR1") or you can pass a block to the initializer and have it executed upon timeout: a = Posix::Timer.new do puts "hi" raise MyCustomException end a.arm(10.0) # 10 seconds later => MyCustomException Other features: a.disarm # disarm the timer a.armed? # true or false a.timeout # return number of seconds until timer expires # # Caveats # # # The Posix::Timer instance uses POSIX signals to trigger # the timeouts. This may conflict with other signals you wish to # use in your application. # # Passing a block to the constructor will perform a Signal.trap on # the signal. This may override an existing Signal.trap. In a future # version I intend to rollback the previous trap context. # # Multiple timers using the same signal may conflict.