larva 0.9.0 → 0.9.1

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