Hi,
In message "Re: How should I document Kernel.exit?"
on Tue, 4 Mar 2008 07:22:46 +0900, Dave Thomas <dave / pragprog.com> writes:
|In 1.8, the following code
|
| at_exit { puts "at_exit function" }
| ObjectSpace.define_finalizer("string", lambda { puts "in finalizer" })
| exit
|
|output
| at_exit function
| in finalizer
|
|in 1.9, I just see "at_exit function"
I get it. No bug in finalizer.
In 1.9, lambda check number of arguments strictly (finalizer takes one
argument, which is object_id of the target), so that you have to
specify argument, e.g.
at_exit { puts "at_exit function" }
ObjectSpace.define_finalizer("string", lambda{|id| puts "in finalizer" })
exit
matz.