rgossip 0.1.7 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/rgossip/client.rb +14 -5
- data/lib/rgossip/node.rb +10 -0
- data/lib/rgossip/timer.rb +9 -0
- metadata +3 -3
data/lib/rgossip/client.rb
CHANGED
@@ -101,10 +101,16 @@ module RGossip
|
|
101
101
|
address = name2addr(address)
|
102
102
|
|
103
103
|
@node_list.synchronize {
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
104
|
+
@dead_list.synchronize {
|
105
|
+
raise 'node is exist' if @node_list.any? {|i| i.address == address }
|
106
|
+
node = Node.new(@node_list, @dead_list, address, nil, nil, self.method(:perform_callback))
|
107
|
+
@node_list << node
|
108
|
+
node.start_timer if @running
|
109
|
+
|
110
|
+
@dead_list.reject! do |i|
|
111
|
+
i.address == address
|
112
|
+
end
|
113
|
+
}
|
108
114
|
}
|
109
115
|
end
|
110
116
|
|
@@ -113,7 +119,10 @@ module RGossip
|
|
113
119
|
|
114
120
|
@node_list.synchronize {
|
115
121
|
@node_list.reject! do |i|
|
116
|
-
i.address == address
|
122
|
+
if i.address == address
|
123
|
+
i.stop_timer
|
124
|
+
true
|
125
|
+
end
|
117
126
|
end
|
118
127
|
}
|
119
128
|
end
|
data/lib/rgossip/node.rb
CHANGED
@@ -27,6 +27,10 @@ module RGossip
|
|
27
27
|
}
|
28
28
|
|
29
29
|
@dead_list.synchronize {
|
30
|
+
@dead_list.reject! do |i|
|
31
|
+
i.address == @address
|
32
|
+
end
|
33
|
+
|
30
34
|
@dead_list << self
|
31
35
|
}
|
32
36
|
|
@@ -54,5 +58,11 @@ module RGossip
|
|
54
58
|
|
55
59
|
@timer.reset
|
56
60
|
end
|
61
|
+
|
62
|
+
def stop_timer
|
63
|
+
RGossip.log("Stop Timer: address=#{@address} lifetime=#{@@lifetime}")
|
64
|
+
|
65
|
+
@timer.stop
|
66
|
+
end
|
57
67
|
end # Node
|
58
68
|
end # RGossip
|
data/lib/rgossip/timer.rb
CHANGED
metadata
CHANGED