diff options
author | marcandre <marcandre@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-10-24 18:08:00 +0000 |
---|---|---|
committer | marcandre <marcandre@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-10-24 18:08:00 +0000 |
commit | 013dcf08a1c7256243273c7e48c6ff80b02cfb02 (patch) | |
tree | 26ca362476c5f68533dd371ac025c69587a9e95c | |
parent | a0fc5fbfd25be98d3456a5117fb807b93d3538bc (diff) | |
download | ruby-013dcf08a1c7256243273c7e48c6ff80b02cfb02.tar.gz |
lib/weakref: Remove incorrect example [DOC] [Bug #14031]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60404 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | lib/weakref.rb | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/lib/weakref.rb b/lib/weakref.rb index c88babba46..824d4016e1 100644 --- a/lib/weakref.rb +++ b/lib/weakref.rb @@ -15,53 +15,6 @@ require "delegate" # GC.start # start the garbage collector # p foo.to_s # should raise exception (recycled) # -# == Example -# -# With help from WeakRef, we can implement our own rudimentary WeakHash class. -# -# We will call it WeakHash, since it's really just a Hash except all of it's -# keys and values can be garbage collected. -# -# require 'weakref' -# -# class WeakHash < Hash -# def []= key, obj -# super WeakRef.new(key), WeakRef.new(obj) -# end -# end -# -# This is just a simple implementation, we've opened the Hash class and changed -# Hash#store to create a new WeakRef object with +key+ and +obj+ parameters -# before passing them as our key-value pair to the hash. -# -# With this you will have to limit your self to String keys, otherwise you -# will get an ArgumentError because WeakRef cannot create a finalizer for a -# Symbol. Symbols are immutable and cannot be garbage collected. -# -# Let's see it in action: -# -# omg = "lol" -# c = WeakHash.new -# c['foo'] = "bar" -# c['baz'] = Object.new -# c['qux'] = omg -# puts c.inspect -# #=> {"foo"=>"bar", "baz"=>#<Object:0x007f4ddfc6cb48>, "qux"=>"lol"} -# -# # Now run the garbage collector -# GC.start -# c['foo'] #=> nil -# c['baz'] #=> nil -# c['qux'] #=> nil -# omg #=> "lol" -# -# puts c.inspect -# #=> WeakRef::RefError: Invalid Reference - probably recycled -# -# You can see the local variable +omg+ stayed, although its reference in our -# hash object was garbage collected, along with the rest of the keys and -# values. Also, when we tried to inspect our hash, we got a WeakRef::RefError. -# This is because these objects were also garbage collected. class WeakRef < Delegator |