| Class | DRb::TimerIdConv::TimerHolder2 |
| In: |
drb/timeridconv.rb
|
| Parent: | Object |
Included Modules
Public Class methods
# File drb/timeridconv.rb, line 11
11: def initialize(timeout=600)
12: super()
13: @sentinel = Object.new
14: @gc = {}
15: @curr = {}
16: @renew = {}
17: @timeout = timeout
18: @keeper = keeper
19: end
Public Instance methods
# File drb/timeridconv.rb, line 21
21: def add(obj)
22: synchronize do
23: key = obj.__id__
24: @curr[key] = obj
25: return key
26: end
27: end
# File drb/timeridconv.rb, line 29
29: def fetch(key, dv=@sentinel)
30: synchronize do
31: obj = peek(key)
32: if obj == @sentinel
33: return dv unless dv == @sentinel
34: raise InvalidIndexError
35: end
36: @renew[key] = obj # KeepIt
37: return obj
38: end
39: end