rgossip 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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