at_exitって何度も設定できるんだっけ?とふと気になったので、調べてみた。
at_exit.rb
at_exit do
puts :one
end
at_exit do
puts :two
end
at_exit do
puts :three
end
$ ruby at_exit.rb
three
two
one
最後に登録された順に実行されるらしい。
at_exitで補足できないのは
* Kernel#exit!したとき
* シグナルハンドラで補足できないシグナル(KILLとか)を受信したとき
* rubyがSEGVしたとき
とかだろうか。