# File lib/parallel.rb, line 26 def initialize(read, write, pid) @read, @write, @pid = read, write, pid end
# File lib/parallel.rb, line 30 def close_pipes read.close write.close end
# File lib/parallel.rb, line 35 def wait Process.wait(pid) rescue Interrupt # process died end
# File lib/parallel.rb, line 41 def work(index) begin Marshal.dump(index, write) rescue Errno::EPIPE raise DeadWorker end begin Marshal.load(read) rescue EOFError raise DeadWorker end end