contender 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.
@@ -26,7 +26,7 @@ module Contender
26
26
  def countdown
27
27
  @mutex.synchronize do
28
28
  @count = @count.pred if @count > 0
29
- @condition.broadcast
29
+ @condition.broadcast if @count == 0
30
30
  end
31
31
  end
32
32
 
@@ -34,11 +34,13 @@ module Contender
34
34
  #
35
35
  # @api public
36
36
  # @param [Float] timeout
37
- # @return [undefined]
37
+ # @return [Boolean] True if the latch reached zero, false if the timeout was reached
38
38
  def await(timeout = nil)
39
39
  @mutex.synchronize do
40
40
  return if @count == 0
41
41
  @condition.wait @mutex, timeout
42
+
43
+ @count == 0
42
44
  end
43
45
  end
44
46
  end # CountdownLatch
@@ -72,7 +72,10 @@ module Contender
72
72
  # @api public
73
73
  # @return [undefined]
74
74
  def start
75
- return unless inactive?
75
+ @mutex.synchronize do
76
+ return unless inactive?
77
+ @state = :starting
78
+ end
76
79
 
77
80
  start_workers @options.fetch(:size)
78
81
  @state = :active
@@ -83,9 +86,10 @@ module Contender
83
86
  # @api public
84
87
  # @return [undefined]
85
88
  def shutdown
86
- return unless active?
87
-
88
- @state = :shutdown
89
+ @mutex.synchronize do
90
+ return unless active?
91
+ @state = :shutdown
92
+ end
89
93
 
90
94
  # TODO This is not ideal
91
95
  until @queue.empty?
@@ -108,9 +112,10 @@ module Contender
108
112
  # @api public
109
113
  # @return [undefined]
110
114
  def shutdown!
111
- return unless active?
112
-
113
- @state = :shutdown_now
115
+ @mutex.synchronize do
116
+ return unless active?
117
+ @state = :shutdown_now
118
+ end
114
119
 
115
120
  @workers.each do |worker|
116
121
  worker.interrupt
@@ -1,3 +1,3 @@
1
1
  module Contender
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1'
3
3
  end
metadata CHANGED
@@ -1,11 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: contender
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ prerelease:
5
+ version: 0.1.1
5
6
  platform: ruby
6
7
  authors:
7
8
  - Ian Unruh
8
- autorequire:
9
+ autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
12
  date: 2013-06-13 00:00:00.000000000 Z
@@ -16,22 +17,21 @@ executables: []
16
17
  extensions: []
17
18
  extra_rdoc_files: []
18
19
  files:
20
+ - lib/contender.rb
19
21
  - lib/contender/countdown_latch.rb
20
22
  - lib/contender/direct_executor.rb
21
23
  - lib/contender/errors.rb
22
24
  - lib/contender/executor.rb
25
+ - lib/contender/pool.rb
26
+ - lib/contender/version.rb
23
27
  - lib/contender/pool/pool_worker.rb
24
28
  - lib/contender/pool/task.rb
25
29
  - lib/contender/pool/task_queue.rb
26
30
  - lib/contender/pool/thread_pool_executor.rb
27
- - lib/contender/pool.rb
28
- - lib/contender/version.rb
29
- - lib/contender.rb
30
31
  homepage: https://github.com/ianunruh/contender
31
32
  licenses:
32
33
  - Apache 2.0
33
- metadata: {}
34
- post_install_message:
34
+ post_install_message:
35
35
  rdoc_options: []
36
36
  require_paths:
37
37
  - lib
@@ -40,16 +40,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
40
40
  - - '>='
41
41
  - !ruby/object:Gem::Version
42
42
  version: '0'
43
+ none: false
43
44
  required_rubygems_version: !ruby/object:Gem::Requirement
44
45
  requirements:
45
46
  - - '>='
46
47
  - !ruby/object:Gem::Version
47
48
  version: '0'
49
+ none: false
48
50
  requirements: []
49
- rubyforge_project:
50
- rubygems_version: 2.0.3
51
- signing_key:
52
- specification_version: 4
51
+ rubyforge_project:
52
+ rubygems_version: 1.8.24
53
+ signing_key:
54
+ specification_version: 3
53
55
  summary: Simple framework for managing in-process execution
54
56
  test_files: []
55
- has_rdoc:
57
+ has_rdoc:
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 4277ce364374a3fc397165e20f7775c84828225c
4
- data.tar.gz: f8c915d431b9d64ae31a9a9470e78ee83ba8df7d
5
- SHA512:
6
- metadata.gz: 6f252c5ef6200b03e51f3a35edddc150d03ddd01f20cf77f7a7b9d102114f499df03a07db0a5c8833fa3af55a0ad27e0a39ce9aa616ca0edc229853e7741f56c
7
- data.tar.gz: 9c65d1d8d32808f2afcb0a66ffa41d995b7af142faeda839fd588d2c833582d63f3421c981bb759f46842e74987950d2f1aed48bb9e3bf892c961f43f26a0a25