brown 2.2.1 → 2.2.2

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 (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/brown +20 -18
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 80d8b8839069b1aef10dc6a78f8d300b7f0d0191
4
- data.tar.gz: 76552fb92abda3c6e4362fb8bcc12f2a602c8e14
3
+ metadata.gz: 02ab3890a3b264186f6ad050332e0e13f897ec3a
4
+ data.tar.gz: d9e120a8aa6478c5551c21fc9868e2b2a892a60e
5
5
  SHA512:
6
- metadata.gz: 71edb2cda3ba54528d608bc5032e008d501bfd79de97cbb168516ca407c1086ae46fc2a9d21645d6ba5346a03e1534a32261a913338f1326f238a481b1d33b50
7
- data.tar.gz: e1bc450d4ab6eeb14aae29184676481598c25a43b949b596f28e279a462d6f0924da00cdd26897432fec6cf81692b977fb6af5eb5970994098e82aaa2cc1410b
6
+ metadata.gz: 781654a0fbf0643dbae1b2a481a14b3ca21dd3d58ae3b8ec5c3555c2f2f7bcc4cc9865e9ea4417a125ceba391366052f196f3dd72713a7254a4cddf7496774c0
7
+ data.tar.gz: 10e4dca65cd6f577ac9f604e3a0678584d9281f0a23863702c03c5013aa67c4f73b8241c26f97c5f7775e836da151948d03853a2d34754b2519e23de0798766b
data/bin/brown CHANGED
@@ -27,6 +27,7 @@ agents = []
27
27
 
28
28
  def stop_agents(agents)
29
29
  agents.each do |th|
30
+ Brown::Agent.logger.debug { "Stopping agent #{th[:agent_class].inspect} (thread #{th.inspect})" }
30
31
  th[:agent_class] && th[:agent_class].stop
31
32
  end
32
33
  end
@@ -60,6 +61,7 @@ agent_classes.each do |klass|
60
61
  agents << th
61
62
 
62
63
  Brown::Agent.logger.info { "Started agent #{klass}" }
64
+ Brown::Agent.logger.debug { "Agent thread is #{th.inspect}" }
63
65
  end
64
66
 
65
67
  loop do
@@ -67,30 +69,30 @@ loop do
67
69
  break
68
70
  end
69
71
 
72
+ sleep 0.5
73
+
70
74
  agents.each do |th|
71
- unless th.alive?
72
- begin
73
- th.join(0.5)
74
- rescue Exception => ex
75
- Brown::Agent.logger.fatal { "Agent #{th[:agent_class]} crashed: #{ex.message} (#{ex.class})" }
76
- Brown::Agent.logger.info { ex.backtrace.map { |l| " #{l}" }.join("\n") }
77
-
78
- Brown::Agent.logger.info { "Re-starting #{klass} agent" }
79
-
80
- new_th = Thread.new(klass) do |klass|
81
- Thread.current[:agent_class] = klass
82
- klass.run
83
- end
84
-
85
- agents << new_th
86
- else
87
- Brown::Agent.logger.warn "Agent #{th[:agent_class]} exited cleanly; not restarting"
75
+ Brown::Agent.logger.debug { "Examining agent thread #{th.inspect}" }
76
+ begin
77
+ if th.join(0.5)
78
+ Brown::Agent.logger.info { "Agent #{th[:agent_class]} exited cleanly; not restarting" }
79
+ agents.delete(th)
88
80
  end
81
+ rescue Exception => ex
82
+ Brown::Agent.logger.fatal { "Agent #{th[:agent_class]} crashed: #{ex.message} (#{ex.class})" }
83
+ Brown::Agent.logger.info { ex.backtrace.map { |l| " #{l}" }.join("\n") }
84
+
85
+ Brown::Agent.logger.info { "Re-starting #{klass} agent" }
89
86
 
90
87
  klass = th[:agent_class]
91
- th[:agent_class] = nil
92
88
  agents.delete(th)
89
+
90
+ agents << Thread.new(klass) do |klass|
91
+ Thread.current[:agent_class] = klass
92
+ klass.run
93
+ end
93
94
  end
95
+
94
96
  end
95
97
  end
96
98
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brown
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 2.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Palmer