brown 2.2.1 → 2.2.2

Sign up to get free protection for your applications and to get access to all the features.
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