workqueue 0.1.2 → 0.1.3

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.
data/lib/workqueue.rb CHANGED
@@ -17,7 +17,6 @@ class WorkQueue
17
17
  def initialize(init_queue=[], opts={}, &job)
18
18
  @job = job
19
19
  @queue = Queue.new
20
- @mutex = Mutex.new
21
20
 
22
21
  opts.each { |k, v| send(:"#{k}=", v) }
23
22
 
@@ -32,17 +31,9 @@ class WorkQueue
32
31
  def work!
33
32
  loop do
34
33
  begin
35
- # initialize these here so they can be set in
36
- # the synchronize block
37
- payload, index = []
38
-
39
- @mutex.synchronize {
40
- unless @aborted or (@joined and queue.empty?)
41
- payload, index = queue.shift
42
- end
43
- }
44
-
45
- break if payload.nil?
34
+ break if @aborted
35
+ payload, index = queue.shift
36
+ break if payload == :__break!
46
37
 
47
38
  aggregate[index] = job.call(payload)
48
39
  rescue Exception
@@ -53,7 +44,7 @@ class WorkQueue
53
44
  end
54
45
 
55
46
  def abort!
56
- @mutex.synchronize { @aborted = true }
47
+ @aborted = true
57
48
  end
58
49
 
59
50
  def run
@@ -76,7 +67,7 @@ class WorkQueue
76
67
  end
77
68
 
78
69
  def join
79
- @mutex.synchronize { @joined = true }
70
+ concat([:__break!] * size)
80
71
 
81
72
  workers.each(&:join)
82
73
 
@@ -1,5 +1,5 @@
1
1
  class WorkQueue
2
2
  def self.version
3
- '0.1.2'
3
+ '0.1.3'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: workqueue
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-11-08 00:00:00.000000000Z
12
+ date: 2011-11-09 00:00:00.000000000Z
13
13
  dependencies: []
14
14
  description: ! ' A description will be forthcoming
15
15
 
@@ -38,7 +38,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
38
38
  version: '0'
39
39
  segments:
40
40
  - 0
41
- hash: 705587981601975922
41
+ hash: 3748006813940409733
42
42
  required_rubygems_version: !ruby/object:Gem::Requirement
43
43
  none: false
44
44
  requirements:
@@ -47,7 +47,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
47
47
  version: '0'
48
48
  segments:
49
49
  - 0
50
- hash: 705587981601975922
50
+ hash: 3748006813940409733
51
51
  requirements: []
52
52
  rubyforge_project: workqueue
53
53
  rubygems_version: 1.8.10