class Parallel::Worker

Attributes

pid[R]
read[R]
write[R]

Public Class Methods

new(read, write, pid) click to toggle source
# File lib/parallel.rb, line 26
def initialize(read, write, pid)
  @read, @write, @pid = read, write, pid
end

Public Instance Methods

close_pipes() click to toggle source
# File lib/parallel.rb, line 30
def close_pipes
  read.close
  write.close
end
wait() click to toggle source
# File lib/parallel.rb, line 35
def wait
  Process.wait(pid)
rescue Interrupt
  # process died
end
work(index) click to toggle source
# 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