From ffd0da0333dd413d041ce25e4066c97890343a0c Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 26 Aug 2009 09:49:28 +0000 Subject: [PATCH] * lib/tempfile.rb (Tempfile#close!): should not undefine finalizer by just unlink. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24666 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ lib/tempfile.rb | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index b0e553ac2d..40821379c5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Aug 26 18:49:22 2009 Nobuyoshi Nakada + + * lib/tempfile.rb (Tempfile#close!): should not undefine finalizer + by just unlink. + Wed Aug 26 17:00:31 2009 Nobuyoshi Nakada * tool/mkconfig.rb (program_transform_name): fix for autoconf 2.61 diff --git a/lib/tempfile.rb b/lib/tempfile.rb index 57127c7214..34d036fd6a 100644 --- a/lib/tempfile.rb +++ b/lib/tempfile.rb @@ -126,6 +126,7 @@ class Tempfile < DelegateClass(File) def close! _close unlink + ObjectSpace.undefine_finalizer(self) end # Unlinks the file. On UNIX-like systems, it is often a good idea @@ -143,7 +144,6 @@ class Tempfile < DelegateClass(File) # remove tmpname and cleanlist from callback @data[0] = @data[2] = nil @data = @tmpname = nil - ObjectSpace.undefine_finalizer(self) rescue Errno::EACCES # may not be able to unlink on Windows; just ignore end