parallel 1.8.0 → 1.9.0
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.
- checksums.yaml +4 -4
- data/lib/parallel.rb +18 -4
- data/lib/parallel/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 12ab9909c74851e485eb8565aec2216e9338b300
|
4
|
+
data.tar.gz: 44ec37a9e9ca726a406ccd40e8f34224950ce901
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d427df65610e20fb2b7da6c572565de3c9cb6dc6fc3a5b483f41d30514675d67b47f05a51579f04ab0a384cb642b5aef272e9c682d584c9e92c43762fb0bd2a
|
7
|
+
data.tar.gz: 2f48e8be3267f707ba4d43596d2489e7c54564be466a9155bbd88991e454110e8406bf247436bcca0ac12fcd1d867f2fda5741e71111b7611629e41a17f5fc12
|
data/lib/parallel.rb
CHANGED
@@ -246,6 +246,14 @@ module Parallel
|
|
246
246
|
map(array, options.merge(:with_index => true), &block)
|
247
247
|
end
|
248
248
|
|
249
|
+
def worker_number
|
250
|
+
Thread.current[:parallel_worker_number]
|
251
|
+
end
|
252
|
+
|
253
|
+
def worker_number=(worker_num)
|
254
|
+
Thread.current[:parallel_worker_number] = worker_num
|
255
|
+
end
|
256
|
+
|
249
257
|
private
|
250
258
|
|
251
259
|
def add_progress_bar!(job_factory, options)
|
@@ -274,6 +282,7 @@ module Parallel
|
|
274
282
|
end
|
275
283
|
|
276
284
|
def work_direct(job_factory, options, &block)
|
285
|
+
self.worker_number = 0
|
277
286
|
results = []
|
278
287
|
while set = job_factory.next
|
279
288
|
item, index = set
|
@@ -282,6 +291,8 @@ module Parallel
|
|
282
291
|
end
|
283
292
|
end
|
284
293
|
results
|
294
|
+
ensure
|
295
|
+
self.worker_number = nil
|
285
296
|
end
|
286
297
|
|
287
298
|
def work_in_threads(job_factory, options, &block)
|
@@ -290,7 +301,8 @@ module Parallel
|
|
290
301
|
results_mutex = Mutex.new # arrays are not thread-safe on jRuby
|
291
302
|
exception = nil
|
292
303
|
|
293
|
-
in_threads(options) do
|
304
|
+
in_threads(options) do |worker_num|
|
305
|
+
self.worker_number = worker_num
|
294
306
|
# as long as there are more jobs, work on one of them
|
295
307
|
while !exception && set = job_factory.next
|
296
308
|
begin
|
@@ -365,13 +377,13 @@ module Parallel
|
|
365
377
|
|
366
378
|
# create a new replacement worker
|
367
379
|
running = workers - [worker]
|
368
|
-
workers[i] = worker(job_factory, options.merge(started_workers: running), &blk)
|
380
|
+
workers[i] = worker(job_factory, options.merge(started_workers: running, worker_number: i), &blk)
|
369
381
|
end
|
370
382
|
|
371
383
|
def create_workers(job_factory, options, &block)
|
372
384
|
workers = []
|
373
|
-
Array.new(options[:count]).
|
374
|
-
workers << worker(job_factory, options.merge(:
|
385
|
+
Array.new(options[:count]).each_with_index do |_, i|
|
386
|
+
workers << worker(job_factory, options.merge(started_workers: workers, worker_number: i), &block)
|
375
387
|
end
|
376
388
|
workers
|
377
389
|
end
|
@@ -381,6 +393,8 @@ module Parallel
|
|
381
393
|
parent_read, child_write = IO.pipe
|
382
394
|
|
383
395
|
pid = Process.fork do
|
396
|
+
self.worker_number = options[:worker_number]
|
397
|
+
|
384
398
|
begin
|
385
399
|
options.delete(:started_workers).each(&:close_pipes)
|
386
400
|
|
data/lib/parallel/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parallel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Grosser
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-03
|
11
|
+
date: 2016-06-03 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email: michael@grosser.it
|