Class
Class Methods
::
lib/drb/weakidconv.rb
View on GitHub
# File tmp/rubies/ruby-3.1.3/lib/drb/weakidconv.rb, line 14
def initialize
super()
@immutable = {}
@map = ObjectSpace::WeakMap.new
end
No documentation available
Instance Methods
#
lib/drb/weakidconv.rb
View on GitHub
# File tmp/rubies/ruby-3.1.3/lib/drb/weakidconv.rb, line 20
def add(obj)
synchronize do
begin
@map[obj] = self
rescue ArgumentError
@immutable[obj.__id__] = obj
end
return obj.__id__
end
end
No documentation available
lib/drb/weakidconv.rb
View on GitHub
# File tmp/rubies/ruby-3.1.3/lib/drb/weakidconv.rb, line 31
def fetch(ref)
synchronize do
@immutable.fetch(ref) {
@map.each { |key, _|
return key if key.__id__ == ref
}
raise RangeError.new("invalid reference")
}
end
end
No documentation available