diff options
author | Samuel Giddins <segiddins@segiddins.me> | 2016-01-30 17:42:25 -0600 |
---|---|---|
committer | Samuel Giddins <segiddins@segiddins.me> | 2016-01-30 18:15:39 -0600 |
commit | a6e2bbaa9c5ee97787b141748e656a4e5ff37aa3 (patch) | |
tree | a941c7cdf402821394512c9cb382cd87432ae5f9 | |
parent | 9904cdb72fcb7a8bfc4d6b1632fe97d0a97d9d7a (diff) | |
download | bundler-a6e2bbaa9c5ee97787b141748e656a4e5ff37aa3.tar.gz |
[Worker] Add a worker name to ease debuggingseg-thread-names
-rw-r--r-- | lib/bundler/fetcher/compact_index.rb | 3 | ||||
-rw-r--r-- | lib/bundler/installer/parallel_installer.rb | 2 | ||||
-rw-r--r-- | lib/bundler/worker.rb | 13 |
3 files changed, 14 insertions, 4 deletions
diff --git a/lib/bundler/fetcher/compact_index.rb b/lib/bundler/fetcher/compact_index.rb index 97b2e71dce..0dd9b130be 100644 --- a/lib/bundler/fetcher/compact_index.rb +++ b/lib/bundler/fetcher/compact_index.rb @@ -80,7 +80,8 @@ module Bundler end.tap do |client| client.in_parallel = lambda do |inputs, &blk| func = lambda {|object, _index| blk.call(object) } - worker = Bundler::Worker.new(25, func) + worker_name = "Compact Index (#{display_uri.host})" + worker = Bundler::Worker.new(25, worker_name, func) inputs.each {|input| worker.enq(input) } inputs.map { worker.deq } end diff --git a/lib/bundler/installer/parallel_installer.rb b/lib/bundler/installer/parallel_installer.rb index d32204fab3..674c45af25 100644 --- a/lib/bundler/installer/parallel_installer.rb +++ b/lib/bundler/installer/parallel_installer.rb @@ -84,7 +84,7 @@ class ParallelInstaller end def worker_pool - @worker_pool ||= Bundler::Worker.new @size, lambda { |spec_install, worker_num| + @worker_pool ||= Bundler::Worker.new @size, "Parallel Installer", lambda { |spec_install, worker_num| message = Bundler::GemInstaller.new( spec_install.spec, @installer, @standalone, worker_num, @force ).install_from_spec diff --git a/lib/bundler/worker.rb b/lib/bundler/worker.rb index da7eac0b69..addd9cc8a1 100644 --- a/lib/bundler/worker.rb +++ b/lib/bundler/worker.rb @@ -11,15 +11,24 @@ module Bundler end end + # @return [String] the name of the worker + attr_reader :name + # Creates a worker pool of specified size # # @param size [Integer] Size of pool + # @param name [String] name the name of the worker # @param func [Proc] job to run in inside the worker pool - def initialize(size, func) + def initialize(size, name, func) + @name = name @request_queue = Queue.new @response_queue = Queue.new @func = func - @threads = size.times.map {|i| Thread.start { process_queue(i) } } + @threads = size.times.map do |i| + Thread.start { process_queue(i) }.tap do |thread| + thread.name = "#{name} Worker ##{i}" if thread.respond_to?(:name=) + end + end trap("INT") { abort_threads } end |