templates/collectd/script/collectd/collectd-runner.rb in rubber-2.13.1 vs templates/collectd/script/collectd/collectd-runner.rb in rubber-2.14.0

- old
+ new

@@ -75,20 +75,38 @@ # STDERR.puts "#{Time.now}: Starting rubber-collectd execution loop" loop do start_time = Time.now.to_i - scripts.each do |script| - fork do - begin - load script - rescue Exception => e - STDERR.puts("#{script}: #{e}") + if defined?(JRUBY_VERSION) + threads = [] + + scripts.each do |script| + threads << Thread.new do + begin + load script + rescue Exception => e + STDERR.puts("#{script}: #{e}") + end end end + + threads.each(&:join) + + else + scripts.each do |script| + fork do + begin + load script + rescue Exception => e + STDERR.puts("#{script}: #{e}") + end + end + end + + Process.waitall end - Process.waitall run_time = Time.now.to_i - start_time begin puts "PUTVAL #{HOSTNAME}/rubber/gauge-collectd_runner interval=#{INTERVAL} N:#{run_time}" rescue Errno::EPIPE @@ -101,7 +119,6 @@ sleep_time = INTERVAL STDERR.puts("Plugins taking longer (#{run_time}s) than #{INTERVAL}s") end sleep sleep_time - end