diff options
Diffstat (limited to 'lib/final.rb')
| -rw-r--r-- | lib/final.rb | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/lib/final.rb b/lib/final.rb deleted file mode 100644 index cdffd941e7..0000000000 --- a/lib/final.rb +++ /dev/null @@ -1,41 +0,0 @@ -# -# $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 |
