Issue #6664 has been updated by nobu (Nobuyoshi Nakada). Status changed from Open to Rejected Priority changed from Urgent to Low =begin No. (1) an object may not be collected even if it seems not referred from reading the code. (2) finalizers may not run just after the object is collected. =end ---------------------------------------- Bug #6664: Object finalizer do not run until program exit https://bugs.ruby-lang.org/issues/6664#change-27548 Author: funny_falcon (Yura Sokolov) Status: Rejected Priority: Low Assignee: Category: core Target version: 2.0.0 ruby -v: ruby 2.0.0dev (2012-06-28 trunk 36243) [x86_64-linux] Test script: https://gist.github.com/3009867 Conclusions: - Ruby 1.8.7 (REE) is able to run finalizer on GC when its proc is created outside of scope and so that does not handle object in its binding. - even Ruby 1.8.7 not able to run finalizer until program exit when finalizer's proc is created in scope where #define_finalizer is called - neither Ruby 1.9.2, nor Ruby 1.9.3, nor Ruby-trunk is able to run finalizer until program exit. -- http://bugs.ruby-lang.org/