lib/ztk/parallel.rb in ztk-3.3.1 vs lib/ztk/parallel.rb in ztk-3.3.2

- old
+ new

@@ -209,10 +209,15 @@ return nil if @forks.count <= 0 pid, status = (Process.wait2(-1, Process::WUNTRACED) rescue nil) if !pid.nil? && !status.nil? && !(fork = @forks.select{ |f| f[:pid] == pid }.first).nil? - data = Marshal.load(Zlib::Inflate.inflate(Base64.decode64(fork[:reader].read).to_s)) + data = nil + begin + data = Marshal.load(Zlib::Inflate.inflate(Base64.decode64(fork[:reader].read).to_s)) + rescue Zlib::BufError + config.ui.logger.fatal { "Encountered Zlib::BufError when reading child pipe." } + end config.ui.logger.debug { "read(#{data.inspect})" } data = process_data(data) !data.nil? and @results.push(data)