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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1cfb32f76c7f232bcd3f44e8370af1e61882de3a
4
- data.tar.gz: edab2b1cf2013b37cb7a58908750bfb1221327a8
3
+ metadata.gz: 12ab9909c74851e485eb8565aec2216e9338b300
4
+ data.tar.gz: 44ec37a9e9ca726a406ccd40e8f34224950ce901
5
5
  SHA512:
6
- metadata.gz: 99aa1aaefc20811d7540d607521f76b0edf10b09f5e96d1997341b5a12305d136355ae62e54380d5095111840d2258f8aa09e7a36abff52fdd79cb8f3d392c30
7
- data.tar.gz: 3f4255effe94025fa160ec1ef0f47a1a319c7036a4910f762b95218a7ddcc7b118edc60fb884b2ba8af39959e6b74b51d7b16d1dd8d235ed89ec28505997019f
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]).each do
374
- workers << worker(job_factory, options.merge(:started_workers => workers), &block)
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
 
@@ -1,3 +1,3 @@
1
1
  module Parallel
2
- VERSION = Version = '1.8.0'
2
+ VERSION = Version = '1.9.0'
3
3
  end
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.8.0
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-27 00:00:00.000000000 Z
11
+ date: 2016-06-03 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: michael@grosser.it