parallel 1.8.0 → 1.9.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|