diff options
Diffstat (limited to 'lib/final.rb')
-rw-r--r-- | lib/final.rb | 39 |
1 files changed, 1 insertions, 38 deletions
diff --git a/lib/final.rb b/lib/final.rb index cdffd941e..9d8123882 100644 --- a/lib/final.rb +++ b/lib/final.rb @@ -1,41 +1,4 @@ -# # $Id$ # Copyright (C) 1998 Yukihiro Matsumoto. All rights reserved. -# The ObjectSpace extension: -# -# ObjectSpace.define_finalizer(obj, proc=lambda()) -# -# Defines the finalizer for the specified object. -# -# ObjectSpace.undefine_finalizer(obj) -# -# Removes the finalizers for the object. If multiple finalizers are -# defined for the object, all finalizers will be removed. -# - -module ObjectSpace - Finalizers = {} - def define_finalizer(obj, proc=lambda()) - ObjectSpace.call_finalizer(obj) - if assoc = Finalizers[obj.id] - assoc.push(proc) - else - Finalizers[obj.id] = [proc] - end - end - def undefine_finalizer(obj) - Finalizers.delete(obj.id) - end - module_function :define_finalizer, :undefine_finalizer - - Generic_Finalizer = proc {|id| - if Finalizers.key? id - for proc in Finalizers[id] - proc.call(id) - end - Finalizers.delete(id) - end - } - add_finalizer Generic_Finalizer -end +# final.rb is integrated into ObjectSpace; no longer needed. |