parallizer 0.3.0 → 0.3.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.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- parallizer (0.3.0)
4
+ parallizer (0.3.1)
5
5
  work_queue
6
6
 
7
7
  GEM
data/lib/parallizer.rb CHANGED
@@ -4,7 +4,25 @@ require 'parallizer/proxy'
4
4
  require 'parallizer/method_call_notifier'
5
5
 
6
6
  class Parallizer
7
- WORK_QUEUE_SIZE = 10
7
+ DEFAULT_WORK_QUEUE_SIZE = 10
8
+
9
+ class << self
10
+ def work_queue_size
11
+ work_queue.max_threads
12
+ end
13
+
14
+ def work_queue_size=(size)
15
+ work_queue = Thread.current[:parallizer_work_queue]
16
+ if work_queue.nil? || work_queue.max_threads != size
17
+ Thread.current[:parallizer_work_queue] = WorkQueue.new(size)
18
+ end
19
+ end
20
+
21
+ def work_queue
22
+ # TODO: share the work queue among calling threads
23
+ Thread.current[:parallizer_work_queue] ||= WorkQueue.new(DEFAULT_WORK_QUEUE_SIZE)
24
+ end
25
+ end
8
26
 
9
27
  attr_reader :calls, :call_infos, :client, :proxy, :options
10
28
 
@@ -31,7 +49,6 @@ class Parallizer
31
49
  return if call_infos[method_name_and_args]
32
50
 
33
51
  call_info = {
34
- :complete? => false,
35
52
  :result => nil,
36
53
  :exception => nil,
37
54
  :retries => options[:retries]
@@ -49,11 +66,6 @@ class Parallizer
49
66
 
50
67
  private
51
68
 
52
- def self.work_queue
53
- # TODO: share the work queue among calling threads
54
- Thread.current[:parallizer_work_queue] ||= WorkQueue.new(WORK_QUEUE_SIZE)
55
- end
56
-
57
69
  def execute
58
70
  call_infos.each do |method_name_and_args, call_info|
59
71
  Parallizer.work_queue.enqueue_b do
@@ -1,3 +1,3 @@
1
1
  class Parallizer
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.1"
3
3
  end
@@ -185,6 +185,18 @@ describe Parallizer do
185
185
  @execute_result.message.should == 'an error'
186
186
  end
187
187
  end
188
+
189
+ describe "#work_queue_size" do
190
+ it "should be the default size when not specified" do
191
+ Parallizer.work_queue_size.should == Parallizer::DEFAULT_WORK_QUEUE_SIZE
192
+ end
193
+
194
+ it "should have max threads equal to specified size" do
195
+ size = rand(2..5)
196
+ Parallizer.work_queue_size = size
197
+ Parallizer.work_queue.max_threads.should == size
198
+ end
199
+ end
188
200
 
189
201
  ## Unable to repro after switch to using ThreadPool instead of work_queue gem
190
202
  # context "with multiple threads making calls to proxy before worker executed" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parallizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
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: 2012-10-30 00:00:00.000000000 Z
12
+ date: 2012-11-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: work_queue
@@ -111,7 +111,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
111
111
  version: '0'
112
112
  segments:
113
113
  - 0
114
- hash: 4537061514701133663
114
+ hash: 1371680506904516612
115
115
  required_rubygems_version: !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
@@ -120,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
120
  version: '0'
121
121
  segments:
122
122
  - 0
123
- hash: 4537061514701133663
123
+ hash: 1371680506904516612
124
124
  requirements: []
125
125
  rubyforge_project: parallizer
126
126
  rubygems_version: 1.8.24