Sha256: a13d3920b07bbd684f849155b4f933afc365c89bf7602cab52e72465b88dee22
Contents?: true
Size: 513 Bytes
Versions: 57
Compression:
Stored size: 513 Bytes
Contents
# frozen_string_literal: true module KubernetesDeploy module Concurrency MAX_THREADS = 8 def self.split_across_threads(all_work, &block) return if all_work.empty? raise ArgumentError, "Block of work is required" unless block_given? slice_size = ((all_work.length + MAX_THREADS - 1) / MAX_THREADS) threads = [] all_work.each_slice(slice_size) do |work_group| threads << Thread.new { work_group.each(&block) } end threads.each(&:join) end end end
Version data entries
57 entries across 57 versions & 2 rubygems