larva 0.9.0 → 0.9.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.
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 9138966a1b0eaff5e56c35e4c08748c36a006d88
4
- data.tar.gz: c44e7d7b34ca5a34c882257d7d45947e41c7f9f8
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ OGVmMmQ1MThmZDA0NGFiNTQ4MjkxNTYxYTZlMzU4YjM1NDMxMmUyNA==
5
+ data.tar.gz: !binary |-
6
+ MzI0MDViYWUzYjdjZThhOTJmMDJlNzk4NmEyMTI4N2QzMTE4ZWE5MA==
5
7
  SHA512:
6
- metadata.gz: 117db73e5f648dba084e5d5a969d86dffbffb4a400b280ce011b324661613c4b6cbb9b0b44f43827fb9ba3e96e2091305f8273a65db149b496128d550548242d
7
- data.tar.gz: ee585da37f0ed773f719717381df66e3ed87685bde528be5dac28d7412994237d04a411fb8fb21e33762f466c9b3d28fbd7f10c79c4027bcf3ee0d2bba7da6f4
8
+ metadata.gz: !binary |-
9
+ MzkxY2ViNjIyMWRlZDQ4NTI2YzEwM2QzYTFhMzM4N2E2ZTAzMWY5ODZkNDZh
10
+ YjcxODg2ZjM2OTJhOTlhY2E1ZDdlOWVhODllOGRlNWVjMzhkYWUwNmI3MThj
11
+ NDU0MjMzYzdlNzdjNTk0ZTkyOTMzODMxMjVhY2NmMjNlZTU5YTA=
12
+ data.tar.gz: !binary |-
13
+ MDM2NTA5NzMyZDc3OWQyNzFkMjI2MjIxNTkwZGMzNWNhODdmYjRkNTNmYzQ2
14
+ ZGIxNWU2NGFkNDUwNGE1MTA1MDAzMjZiNDQzNTU5ZTM3MDRlN2UzZTUxNjZi
15
+ MGY0ZTIwMTcwNmJiZTFiYWNmMWU2NjdjNWI5MDJlY2YyZWI5YTY=
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ # 0.9.1 / 2014-04-30
2
+ * [FEATURE] Raise exceptions when thread dies
3
+
1
4
  # 0.9.0 / 2014-04-12
2
5
  * [FEATURE] Change activesupport dependency to allow for Rails 4
3
6
 
data/lib/larva/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Larva
2
- VERSION = '0.9.0'
2
+ VERSION = '0.9.1'
3
3
  end
@@ -10,8 +10,14 @@ module Larva
10
10
  end
11
11
 
12
12
  def start
13
+ @running = true
13
14
  start_workers
14
- keep_workers_alive if workers.count > 0
15
+ keep_workers_alive if workers.count > 0
16
+ end
17
+
18
+ def stop
19
+ logger.info "Request to stop worker pool accepted"
20
+ @running = false
15
21
  end
16
22
 
17
23
  private
@@ -32,7 +38,7 @@ module Larva
32
38
  end
33
39
 
34
40
  def keep_workers_alive
35
- while workers.all? { |t| t.alive? }
41
+ while @running && workers.all? { |t| t.alive? }
36
42
  logger.info 'All threads are alive.'
37
43
  sleep(60)
38
44
  end
@@ -41,6 +47,7 @@ module Larva
41
47
  workers.each do |worker|
42
48
  logger.error "#{worker[:name]} was #{worker.alive? ? 'alive' : 'dead'}"
43
49
  end
50
+ raise StandardError.new('Some threads have died') if @running
44
51
  end
45
52
 
46
53
  def logger
@@ -22,7 +22,8 @@ module Larva
22
22
  Propono.config.logger.expects(:error).with('Some threads have died:')
23
23
  pool = WorkerPool.new({'qux' => nil})
24
24
  pool.stubs(:sleep)
25
- pool.start
25
+ err = assert_raises(StandardError) { pool.start }
26
+ assert_equal 'Some threads have died', err.message
26
27
  end
27
28
 
28
29
  def test_listen_is_called_correctly
@@ -33,7 +34,18 @@ module Larva
33
34
  processor = mock
34
35
  Larva::Listener.expects(:listen).with(topic_name, processor)
35
36
  pool = WorkerPool.new({topic_name => processor})
37
+
36
38
  pool.expects(:sleep).with(60).at_least_once
39
+
40
+ Thread.any_instance.stubs(alive?: true)
41
+
42
+ Thread.new do
43
+ while true
44
+ sleep(1)
45
+ pool.stop
46
+ end
47
+ end
48
+
37
49
  pool.start
38
50
  end
39
51
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: larva
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - iHiD
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-14 00:00:00.000000000 Z
11
+ date: 2014-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: propono
@@ -42,14 +42,14 @@ dependencies:
42
42
  name: activesupport
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ! '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '3.2'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ! '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.2'
55
55
  - !ruby/object:Gem::Dependency
@@ -70,28 +70,28 @@ dependencies:
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ! '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ! '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: mocha
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ! '>='
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ! '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
@@ -173,12 +173,12 @@ require_paths:
173
173
  - lib
174
174
  required_ruby_version: !ruby/object:Gem::Requirement
175
175
  requirements:
176
- - - '>='
176
+ - - ! '>='
177
177
  - !ruby/object:Gem::Version
178
178
  version: '0'
179
179
  required_rubygems_version: !ruby/object:Gem::Requirement
180
180
  requirements:
181
- - - '>='
181
+ - - ! '>='
182
182
  - !ruby/object:Gem::Version
183
183
  version: '0'
184
184
  requirements: []
@@ -198,4 +198,3 @@ test_files:
198
198
  - test/processor_test.rb
199
199
  - test/test_helper.rb
200
200
  - test/worker_pool_test.rb
201
- has_rdoc: