parallel 0.5.9 → 0.5.10

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.
Files changed (6) hide show
  1. data/Rakefile +2 -1
  2. data/Readme.md +3 -1
  3. data/VERSION +1 -1
  4. data/lib/parallel.rb +9 -6
  5. data/parallel.gemspec +22 -21
  6. metadata +25 -25
data/Rakefile CHANGED
@@ -12,9 +12,10 @@ begin
12
12
  gem.email = "grosser.michael@gmail.com"
13
13
  gem.homepage = "http://github.com/grosser/#{gem.name}"
14
14
  gem.authors = ["Michael Grosser"]
15
+ gem.license = "MIT"
15
16
  end
16
17
 
17
18
  Jeweler::GemcutterTasks.new
18
19
  rescue LoadError
19
20
  puts "Jeweler, or one of its dependencies, is not available. Install it with: gem install jeweler"
20
- end
21
+ end
data/Readme.md CHANGED
@@ -61,7 +61,9 @@ Authors
61
61
  - [Byron Bowerman](http://me.bm5k.com/)
62
62
  - [Mikko Kokkonen](https://github.com/mikian)
63
63
  - [brian p o'rourke](https://github.com/bpo)
64
+ - [Norio Sato]
64
65
 
65
66
  [Michael Grosser](http://grosser.it)<br/>
66
67
  michael@grosser.it<br/>
67
- Hereby placed under public domain, do what you want, just do not hold me accountable...
68
+ License: MIT<br/>
69
+ [![Flattr](http://api.flattr.com/button/flattr-badge-large.png)](https://flattr.com/submit/auto?user_id=grosser&url=https://github.com/grosser/parallel&title=parallel&language=en_GB&tags=github&category=software)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.9
1
+ 0.5.10
@@ -125,17 +125,13 @@ class Parallel
125
125
  end
126
126
 
127
127
  def self.work_in_processes(items, options, &blk)
128
+ workers = create_workers(items, options, &blk)
128
129
  current_index = -1
129
130
  results = []
130
- pids = []
131
131
  exception = nil
132
132
 
133
- kill_on_ctrl_c(pids)
134
-
135
133
  in_threads(options[:count]) do |i|
136
- x = i
137
- worker = worker(items, options, &blk)
138
- pids[i] = worker[:pid]
134
+ worker = workers[i]
139
135
 
140
136
  begin
141
137
  loop do
@@ -166,6 +162,13 @@ class Parallel
166
162
  results
167
163
  end
168
164
 
165
+ def self.create_workers(items, options, &block)
166
+ workers = Array.new(options[:count]).map{ worker(items, options, &block) }
167
+ pids = workers.map{|worker| worker[:pid] }
168
+ kill_on_ctrl_c(pids)
169
+ workers
170
+ end
171
+
169
172
  def self.worker(items, options, &block)
170
173
  # use less memory on REE
171
174
  GC.copy_on_write_friendly = true if GC.respond_to?(:copy_on_write_friendly=)
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{parallel}
8
- s.version = "0.5.9"
8
+ s.version = "0.5.10"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Michael Grosser"]
12
- s.date = %q{2011-09-11}
12
+ s.date = %q{2011-12-06}
13
13
  s.email = %q{grosser.michael@gmail.com}
14
14
  s.files = [
15
15
  "Gemfile",
@@ -45,35 +45,36 @@ Gem::Specification.new do |s|
45
45
  "spec/spec_helper.rb"
46
46
  ]
47
47
  s.homepage = %q{http://github.com/grosser/parallel}
48
+ s.licenses = ["MIT"]
48
49
  s.rdoc_options = ["--charset=UTF-8"]
49
50
  s.require_paths = ["lib"]
50
51
  s.rubygems_version = %q{1.6.2}
51
52
  s.summary = %q{Run any kind of code in parallel processes}
52
53
  s.test_files = [
53
- "spec/cases/parallel_map_uneven.rb",
54
- "spec/cases/parallel_raise.rb",
55
- "spec/cases/parallel_influence_outside_data.rb",
56
- "spec/cases/no_dump_with_each.rb",
57
- "spec/cases/parallel_map.rb",
58
- "spec/cases/host_os_override_processor_count.rb",
54
+ "spec/spec_helper.rb",
55
+ "spec/parallel_spec.rb",
59
56
  "spec/cases/map_with_index_empty.rb",
60
- "spec/cases/parallel_with_nil_uses_detected_cpus.rb",
61
- "spec/cases/map_with_threads_and_exceptions.rb",
62
- "spec/cases/closes_processes_at_runtime.rb",
63
- "spec/cases/parallel_high_fork_rate.rb",
64
- "spec/cases/map_with_processes_and_exceptions.rb",
65
57
  "spec/cases/parallel_map_range.rb",
66
- "spec/cases/parallel_map_sleeping.rb",
67
- "spec/cases/parallel_start_and_kill.rb",
68
- "spec/cases/each.rb",
69
- "spec/cases/each_with_index.rb",
70
- "spec/cases/map_with_index.rb",
58
+ "spec/cases/map_with_threads_and_exceptions.rb",
59
+ "spec/cases/parallel_influence_outside_data.rb",
60
+ "spec/cases/parallel_with_set_processes.rb",
71
61
  "spec/cases/parallel_with_detected_cpus.rb",
62
+ "spec/cases/parallel_start_and_kill.rb",
72
63
  "spec/cases/parallel_sleeping_2.rb",
73
- "spec/cases/parallel_with_set_processes.rb",
64
+ "spec/cases/host_os_override_processor_count.rb",
65
+ "spec/cases/map_with_index.rb",
74
66
  "spec/cases/map_with_nested_arrays_and_nil.rb",
75
- "spec/parallel_spec.rb",
76
- "spec/spec_helper.rb"
67
+ "spec/cases/parallel_map_uneven.rb",
68
+ "spec/cases/parallel_map_sleeping.rb",
69
+ "spec/cases/each_with_index.rb",
70
+ "spec/cases/map_with_processes_and_exceptions.rb",
71
+ "spec/cases/no_dump_with_each.rb",
72
+ "spec/cases/parallel_raise.rb",
73
+ "spec/cases/parallel_high_fork_rate.rb",
74
+ "spec/cases/parallel_map.rb",
75
+ "spec/cases/each.rb",
76
+ "spec/cases/closes_processes_at_runtime.rb",
77
+ "spec/cases/parallel_with_nil_uses_detected_cpus.rb"
77
78
  ]
78
79
 
79
80
  if s.respond_to? :specification_version then
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parallel
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 31
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 5
9
- - 9
10
- version: 0.5.9
9
+ - 10
10
+ version: 0.5.10
11
11
  platform: ruby
12
12
  authors:
13
13
  - Michael Grosser
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-09-11 00:00:00 +02:00
18
+ date: 2011-12-06 00:00:00 -08:00
19
19
  default_executable:
20
20
  dependencies: []
21
21
 
@@ -61,8 +61,8 @@ files:
61
61
  - spec/spec_helper.rb
62
62
  has_rdoc: true
63
63
  homepage: http://github.com/grosser/parallel
64
- licenses: []
65
-
64
+ licenses:
65
+ - MIT
66
66
  post_install_message:
67
67
  rdoc_options:
68
68
  - --charset=UTF-8
@@ -94,27 +94,27 @@ signing_key:
94
94
  specification_version: 3
95
95
  summary: Run any kind of code in parallel processes
96
96
  test_files:
97
- - spec/cases/parallel_map_uneven.rb
98
- - spec/cases/parallel_raise.rb
99
- - spec/cases/parallel_influence_outside_data.rb
100
- - spec/cases/no_dump_with_each.rb
101
- - spec/cases/parallel_map.rb
102
- - spec/cases/host_os_override_processor_count.rb
97
+ - spec/spec_helper.rb
98
+ - spec/parallel_spec.rb
103
99
  - spec/cases/map_with_index_empty.rb
104
- - spec/cases/parallel_with_nil_uses_detected_cpus.rb
105
- - spec/cases/map_with_threads_and_exceptions.rb
106
- - spec/cases/closes_processes_at_runtime.rb
107
- - spec/cases/parallel_high_fork_rate.rb
108
- - spec/cases/map_with_processes_and_exceptions.rb
109
100
  - spec/cases/parallel_map_range.rb
110
- - spec/cases/parallel_map_sleeping.rb
111
- - spec/cases/parallel_start_and_kill.rb
112
- - spec/cases/each.rb
113
- - spec/cases/each_with_index.rb
114
- - spec/cases/map_with_index.rb
101
+ - spec/cases/map_with_threads_and_exceptions.rb
102
+ - spec/cases/parallel_influence_outside_data.rb
103
+ - spec/cases/parallel_with_set_processes.rb
115
104
  - spec/cases/parallel_with_detected_cpus.rb
105
+ - spec/cases/parallel_start_and_kill.rb
116
106
  - spec/cases/parallel_sleeping_2.rb
117
- - spec/cases/parallel_with_set_processes.rb
107
+ - spec/cases/host_os_override_processor_count.rb
108
+ - spec/cases/map_with_index.rb
118
109
  - spec/cases/map_with_nested_arrays_and_nil.rb
119
- - spec/parallel_spec.rb
120
- - spec/spec_helper.rb
110
+ - spec/cases/parallel_map_uneven.rb
111
+ - spec/cases/parallel_map_sleeping.rb
112
+ - spec/cases/each_with_index.rb
113
+ - spec/cases/map_with_processes_and_exceptions.rb
114
+ - spec/cases/no_dump_with_each.rb
115
+ - spec/cases/parallel_raise.rb
116
+ - spec/cases/parallel_high_fork_rate.rb
117
+ - spec/cases/parallel_map.rb
118
+ - spec/cases/each.rb
119
+ - spec/cases/closes_processes_at_runtime.rb
120
+ - spec/cases/parallel_with_nil_uses_detected_cpus.rb