On Thu, Aug 20, 2009 at 8:52 PM, Yukihiro Matsumoto<matz / ruby-lang.org> wrote: > Hi, > > In message "Re: [ruby-core:25011] Re: [Bug #1494] tempfile#unlink may silently fail on windows" > ¨ÂÆòé¬ ²± Áõ²°°¹ °¸º³·º³µ «°¹°°¬ ÎïâõùïóèÎáëáäá ¼îïâõÀòõâùìáîç®ïòç¾ ÷òéôåó> > |At Fri, 21 Aug 2009 07:36:27 +0900, > |Shyouhei Urabe wrote in [ruby-core:25008]: > |> > |> Matz, can I revert this? ¨Âäï ùï÷áîô ôï äï óï> | > |I'd vote for Luis's suggestion. > > I am not sure what he exactly wants, and what would happen on Windows. > But if you think it's OK, please check in the fix. > Hello Matz, Basically as Jeremy Kemper pointed, the current 1.9.x implementation is flawed. On this thread: http://groups.google.com/group/rack-devel/browse_thread/thread/a2aab3a4720f34c4 A workaround is use "better" external dependency to override Ruby's one, which has been mentioned in the above thread and it's on GitHub: http://github.com/FooBarWidget/better/blob/master/lib/better/tempfile.rb#L28 More precisely, the approach shown here: http://github.com/FooBarWidget/better/blob/master/lib/better/tempfile.rb#L328-340 Seems to rescue Errno::EACCES on Windows, and silently fail. On our scenario (Windows), that will leave open descriptors. My suggestion was: if we are now taking the time to rescue that exception why we don't actually solve the issue? rescue Errno::EACCES close retry end In theory that will reduce lot of Errno:EACCES and platform specific conditions in end-users scripts. The only thing under this could fail is if another process has locked that file too. -- Luis Lavena AREA 17 - Perfection in design is achieved not when there is nothing more to add, but rather when there is nothing more to take away. Antoine de Saint-ExupñÓy