class Opal::BuilderScheduler::Prefork::Fork

def initialize(forkset)

def initialize(forkset)
  @parent_read, @child_write = IO.pipe(binmode: true)
  @child_read, @parent_write = IO.pipe(binmode: true)
  @forkset = forkset
  @in_fork = false
  @pid = fork do
    @in_fork = true
    begin
      @parent_read.close
      @parent_write.close
      yield(self)
    rescue => error
      send(:exception, error)
    ensure
      send(:close) unless write_io.closed?
      @child_write.close
    end
  end
  @child_read.close
  @child_write.close
end