>>>>> "J" == Joseph McDonald <joe / vpop.net> writes: J> begin J> key = ftok __FILE__, 1 [...] J> while (s = msq.recv 100, 100) at this step, recv will receive an interrupt and sysvipc will call rb_sys_fail() J> puts "got: #{s}" J> end J> # remove the queue J> ensure ruby begin to execute the ensure block, but after the first node it test if it has received an interrupt and because it's true it exit the block (longjmp) J> puts "ensure block" J> msq.remove J> end J> ^C./junker.rb:27: Interrupt ^^^^^^^^^^^^^^^^ This explain the line number. J> in at_exit block then it execute the at_exit proc. Guy Decoux