rgossip 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/rgossip/gossipper.rb +47 -45
  2. metadata +3 -3
@@ -1,56 +1,58 @@
1
- class Gossiper
2
- @@interval = 0.1
3
- def self.interval; @@interval; end
4
- def self.interval=(v); @@interval = v; end
5
-
6
- def initialize(my_node, node_list)
7
- @my_node = my_node
8
- @node_list = node_list
9
- @running = true
10
- end
11
-
12
- def start
13
- RGossip.log("Start Gossiper: interval=#{@@interval}")
14
-
15
- @thread = Thread.start {
16
- begin
17
- sock = UDPSocket.open
18
-
19
- while @running
20
- @node_list.synchronize { gossip(sock) }
21
- sleep(@@interval)
1
+ module RGossip
2
+ class Gossiper
3
+ @@interval = 0.1
4
+ def self.interval; @@interval; end
5
+ def self.interval=(v); @@interval = v; end
6
+
7
+ def initialize(my_node, node_list)
8
+ @my_node = my_node
9
+ @node_list = node_list
10
+ @running = true
11
+ end
12
+
13
+ def start
14
+ RGossip.log("Start Gossiper: interval=#{@@interval}")
15
+
16
+ @thread = Thread.start {
17
+ begin
18
+ sock = UDPSocket.open
19
+
20
+ while @running
21
+ @node_list.synchronize { gossip(sock) }
22
+ sleep(@@interval)
23
+ end
24
+ ensure
25
+ sock.close
22
26
  end
23
- ensure
24
- sock.close
25
- end
26
- }
27
- end
27
+ }
28
+ end
28
29
 
29
- def stop
30
- RGossip.log("Stop Gossiper")
30
+ def stop
31
+ RGossip.log("Stop Gossiper")
31
32
 
32
- @running = false
33
- end
33
+ @running = false
34
+ end
34
35
 
35
- def join
36
- @thread.join
37
- end
36
+ def join
37
+ @thread.join
38
+ end
38
39
 
39
- private
40
- def gossip(sock)
41
- @my_node.update_timestamp
40
+ private
41
+ def gossip(sock)
42
+ @my_node.update_timestamp
42
43
 
43
- dest = @node_list.choice_without(@my_node)
44
- return unless dest
44
+ dest = @node_list.choice_without(@my_node)
45
+ return unless dest
45
46
 
46
- RGossip.log("Gossip: destination=#{dest.address}")
47
+ RGossip.log("Gossip: destination=#{dest.address}")
47
48
 
48
- @node_list.serialize_to_chunks.each do |chunk|
49
- begin
50
- sock.send(chunk, 0, dest.address, RGossip.port)
51
- rescue Exception => e
52
- raise e unless RGossip.error_handler
53
- RGossip.error_handler.call(e)
49
+ @node_list.serialize_to_chunks.each do |chunk|
50
+ begin
51
+ sock.send(chunk, 0, dest.address, RGossip.port)
52
+ rescue Exception => e
53
+ raise e unless RGossip.error_handler
54
+ RGossip.error_handler.call(e)
55
+ end
54
56
  end
55
57
  end
56
58
  end # Gossiper
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rgossip
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - winebarrel