I have Ruby 182-15 on WinXP

When I run the code below only the first finalizer runs.  The others
two don't seem to run.  I found similar posts on other sites, but no
solutions.

You can duplicate the first and it runs twice (so two finalizers is
ok).

To me they are all somewhat identical.  Can anyone tell me why it does
not work.

I have a number of machines that run testware in ruby 152 so I'd like
to KNOW that upgrading will fix the problem before taking this path.


Paul

------- Test.rb --------

class MyClass

    def initialize

ObjectSpace.define_finalizer(self,self.class.method(:finalize).to_proc)
       ObjectSpace.define_finalizer(self,proc{|id| puts "proc final
#{id}"})
       ObjectSpace.define_finalizer(self,self.dofinalize)
    end

    def self.finalize(id)
        puts "Object #{id} dying at #{Time.new}"
    end

    def self.f2(id)
        puts "F2 #{id}"
    end

    def dofinalize
      return Proc.new { |param|
        puts "Doing finalize #{param[0]}"
      }
    end
end


MyClass.new
ObjectSpace.garbage_collect

puts "DONE"

-------- output -------

>Test.rb
DONE
Object 20691624 dying at Thu Jan 18 09:55:38 New Zealand Standard Time
2007
>