[前][次][番号順一覧][スレッド一覧]

ruby-changes:2539

From: ko1@a...
Date: 27 Nov 2007 11:58:54 +0900
Subject: [ruby-changes:2539] matz - Ruby:r14030: lib/finalizer.rb: removed

matz	2007-11-27 11:58:11 +0900 (Tue, 27 Nov 2007)

  New Revision: 14030

  Removed files:
    trunk/lib/finalize.rb

  Log:
    lib/finalizer.rb: removed

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/finalize.rb

Index: lib/finalize.rb
===================================================================
--- lib/finalize.rb	(revision 14029)
+++ lib/finalize.rb	(revision 14030)
@@ -1,193 +0,0 @@
-#--
-#   finalizer.rb - 
-#   	$Release Version: 0.3$
-#   	$Revision: 1.4 $
-#   	$Date: 1998/02/27 05:34:33 $
-#   	by Keiju ISHITSUKA
-#++
-#
-# Usage:
-#
-# add dependency R_method(obj, dependant)
-#   add(obj, dependant, method = :finalize, *opt)
-#   add_dependency(obj, dependant, method = :finalize, *opt)
-#
-# delete dependency R_method(obj, dependant)
-#   delete(obj_or_id, dependant, method = :finalize)
-#   delete_dependency(obj_or_id, dependant, method = :finalize)
-#
-# delete dependency R_*(obj, dependant)
-#   delete_all_dependency(obj_or_id, dependant)
-#
-# delete dependency R_method(*, dependant)
-#   delete_by_dependant(dependant, method = :finalize)
-#
-# delete dependency R_*(*, dependant)
-#   delete_all_by_dependant(dependant)
-#
-# delete all dependency R_*(*, *)
-#   delete_all
-#
-# finalize the dependant connected by dependency R_method(obj, dependtant).
-#   finalize(obj_or_id, dependant, method = :finalize)
-#   finalize_dependency(obj_or_id, dependant, method = :finalize)
-#
-# finalize all dependants connected by dependency R_*(obj, dependtant).
-#   finalize_all_dependency(obj_or_id, dependant)
-#
-# finalize the dependant connected by dependency R_method(*, dependtant).
-#   finalize_by_dependant(dependant, method = :finalize)
-#
-# finalize all dependants connected by dependency R_*(*, dependant).
-#   finalize_all_by_dependant(dependant)
-#
-# finalize all dependency registered to the Finalizer.
-#   finalize_all
-#
-# stop invoking Finalizer on GC.
-#   safe{..}
-#
-
-module Finalizer
-  RCS_ID='-$Id: finalize.rb,v 1.4 1998/02/27 05:34:33 keiju Exp keiju $-'
-
-  class <<self
-    # @dependency: {id => [[dependant, method, *opt], ...], ...}
-
-    # add dependency R_method(obj, dependant)
-    def add_dependency(obj, dependant, method = :finalize, *opt)
-      ObjectSpace.call_finalizer(obj)
-      method = method.intern unless method.kind_of?(Integer)
-      assoc = [dependant, method].concat(opt)
-      if dep = @dependency[obj.object_id]
-	dep.push assoc
-      else
-	@dependency[obj.object_id] = [assoc]
-      end
-    end
-    alias add add_dependency
-
-    # delete dependency R_method(obj, dependant)
-    def delete_dependency(id, dependant, method = :finalize)
-      id = id.object_id unless id.kind_of?(Integer)
-      method = method.intern unless method.kind_of?(Integer)
-      for assoc in @dependency[id]
-	assoc.delete_if do
-	  |d, m, *o|
-	  d == dependant && m == method
-	end
-	@dependency.delete(id) if assoc.empty?
-      end
-    end
-    alias delete delete_dependency
-
-    # delete dependency R_*(obj, dependant)
-    def delete_all_dependency(id, dependant)
-      id = id.object_id unless id.kind_of?(Integer)
-      method = method.intern unless method.kind_of?(Integer)
-      for assoc in @dependency[id]
-	assoc.delete_if do
-	  |d, m, *o|
-	  d == dependant
-	end
-	@dependency.delete(id) if assoc.empty?
-      end
-    end
-
-    # delete dependency R_method(*, dependant)
-    def delete_by_dependant(dependant, method = :finalize)
-      method = method.intern unless method.kind_of?(Integer)
-      for id in @dependency.keys
-	delete(id, dependant, method)
-      end
-    end
-
-    # delete dependency R_*(*, dependant)
-    def delete_all_by_dependant(dependant)
-      for id in @dependency.keys
-	delete_all_dependency(id, dependant)
-      end
-    end
-
-    # finalize the depandant connected by dependency R_method(obj, dependtant)
-    def finalize_dependency(id, dependant, method = :finalize)
-      id = id.object_id unless id.kind_of?(Integer)
-      method = method.intern unless method.kind_of?(Integer)
-      for assocs in @dependency[id]
-	assocs.delete_if do
-	  |d, m, *o|
-	  d.send(m, id, *o) if ret = d == dependant && m == method
-	  ret
-	end
-	@dependency.delete(id) if assoc.empty?
-      end
-    end
-    alias finalize finalize_dependency
-
-    # finalize all dependants connected by dependency R_*(obj, dependtant)
-    def finalize_all_dependency(id, dependant)
-      id = id.object_id unless id.kind_of?(Integer)
-      method = method.intern unless method.kind_of?(Integer)
-      for assoc in @dependency[id]
-	assoc.delete_if do
-	  |d, m, *o|
-	  d.send(m, id, *o) if ret = d == dependant
-	end
-	@dependency.delete(id) if assoc.empty?
-      end
-    end
-
-    # finalize the dependant connected by dependency R_method(*, dependtant)
-    def finalize_by_dependant(dependant, method = :finalize)
-      method = method.intern unless method.kind_of?(Integer)
-      for id in @dependency.keys
-	finalize(id, dependant, method)
-      end
-    end
-
-    # finalize all dependants connected by dependency R_*(*, dependtant)
-    def finalize_all_by_dependant(dependant)
-      for id in @dependency.keys
-	finalize_all_dependency(id, dependant)
-      end
-    end
-
-    # finalize all dependants registered to the Finalizer.
-    def finalize_all
-      for id, assocs in @dependency
-	for dependant, method, *opt in assocs
-	  dependant.send(method, id, *opt)
-	end
-	assocs.clear
-      end
-    end
-
-    # method to call finalize_* safely.
-    def safe
-      old_status = Thread.critical
-      Thread.critical = true
-      ObjectSpace.remove_finalizer(@proc)
-      begin
-	yield
-      ensure
-	ObjectSpace.add_finalizer(@proc)
-	Thread.critical = old_status
-      end
-    end
-
-    private
-
-    # registering function to ObjectSpace#add_finalizer
-    def final_of(id)
-      if assocs = @dependency.delete(id)
-	for dependant, method, *opt in assocs
-	  dependant.send(method, id, *opt)
-	end
-      end
-    end
-
-  end
-  @dependency = Hash.new
-  @proc = proc{|id| final_of(id)}
-  ObjectSpace.add_finalizer(@proc)
-end

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧]