From: Alex Young Date: 2006-07-07T16:57:27+09:00 Subject: Re: GC oddness Yohanes Santoso wrote: > It does not fail on me: > > require 'test/unit' > require 'fileutils' > > class TestDir > @@dir = nil > @@clearup = proc {|id| FileUtils.rm_rf(@@dir); puts "Cleaned"} > > def TestDir.set_finalizer(testdir, dir) > @@dir = dir > ObjectSpace.define_finalizer(testdir, @@clearup) > end > def initialize(dir) > FileUtils.mkdir(dir) > TestDir.set_finalizer(self, dir) > end > end > > class DestroyTest < Test::Unit::TestCase > def test_destroy > a = TestDir.new('test_dir') > a = nil > GC.start > puts "GC invoked" > assert !File.directory?('test_dir') > puts "Done" > end > end > > > $ ruby ./gc.rb > Loaded suite ./gc > Started > Cleaned > GC invoked > Done > . > Finished in 0.015623 seconds. > > 1 tests, 1 assertions, 0 failures, 0 errors That's... odd. > $ ruby -v > ruby 1.8.4 (2005-12-24) [i386-linux] > > Which OS and ruby are you using? $ ruby -v ruby 1.8.4 (2005-12-24) [i486-linux] It's on Ubuntu 5.10. -- Alex