KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
How does one block certain signals in Ruby? (I.e. sigprocmask, as described here: http://www.chemie.fu-berlin.de/chemnet/use/info/libc/libc_21.html#SEC371 ) Here is my example code pid = fork do trap('INT') do puts "Graceful shutdown..." puts "goodbye" exit 0 end loop do this_could_be_interrupted something_that_must_not_be_interrupted this_could_be_interrupted_too end end sleep 5 Process.kill('INT', pid) Can I wrap something_that_must_not_be_interrupted in a ruby block or something to ensure that SIGINT won't be process while that method is running? I guess the ideal would be if I could do something like this: Process.block_signal('INT') do something_that_must_not_be_interrupted end UPDATE : I'm currently doing something like this: trap('INT') do @interrupted = true end loop do exit 0 if @interrupted something_that_must_not_be_interrupted end
Tags (comma-separated)
Save Edits
Cancel