[MacRuby] #408: leaked Tempfile don't get cleaned up
#408: leaked Tempfile don't get cleaned up ---------------------------------+------------------------------------------ Reporter: neeracher@… | Owner: lsansonetti@… Type: defect | Status: new Priority: minor | Milestone: Component: MacRuby | Keywords: ---------------------------------+------------------------------------------ macruby -e 'require "tempfile"; (0..1000).each {|i| p Tempfile.new("x")}' -------------- fails after a few 100 files. Interestingly, this problem does not affect File: -------------- macruby -e '(0..1000).each {|i| p File.new("x", "w")}' -------------- ruby 1.8 runs both programs successfully. I have no 1.9 mainline install to test against. -- Ticket URL: <http://www.macruby.org/trac/ticket/408> MacRuby <http://macruby.org/>
#408: leaked Tempfile don't get cleaned up ---------------------------------+------------------------------------------ Reporter: neeracher@… | Owner: lsansonetti@… Type: defect | Status: new Priority: minor | Milestone: Component: MacRuby | Keywords: ---------------------------------+------------------------------------------ Comment(by lsansonetti@…): Also run fine on 1.9. -- Ticket URL: <http://www.macruby.org/trac/ticket/408#comment:1> MacRuby <http://macruby.org/>
#408: leaked Tempfile don't get cleaned up ---------------------------------+------------------------------------------ Reporter: neeracher@… | Owner: lsansonetti@… Type: defect | Status: new Priority: minor | Milestone: Component: MacRuby | Keywords: ---------------------------------+------------------------------------------ Comment(by lsansonetti@…): Looks like lib/tempfile.rb uses ObjectSpace.define_finalizer to register a block that will close the file. Since ObjectSpace.define_finalizer is not implemented yet in trunk, the file is never closed/removed. -- Ticket URL: <http://www.macruby.org/trac/ticket/408#comment:2> MacRuby <http://macruby.org/>
#408: leaked Tempfile don't get cleaned up ---------------------------------+------------------------------------------ Reporter: neeracher@… | Owner: lsansonetti@… Type: defect | Status: closed Priority: minor | Milestone: MacRuby 0.5 Component: MacRuby | Resolution: fixed Keywords: | ---------------------------------+------------------------------------------ Changes (by lsansonetti@…): * status: new => closed * resolution: => fixed * milestone: => MacRuby 0.5 Comment: I implemented ObjectSpace finalizers as part of r2918 and now your snippet behaves like the old Ruby. It's an experimental implementation and finalizers might potentially be called from foreign threads, so developers should be careful. -- Ticket URL: <http://www.macruby.org/trac/ticket/408#comment:3> MacRuby <http://macruby.org/>
participants (1)
-
MacRuby