# module ActiveSupport::Testing::Isolation::Forking

### Public Instance Methods

run_in_isolation() { |proxy| ... } click to toggle source

    # File lib/active_support/testing/isolation.rb, line 94
    def run_in_isolation(&blk)
      read, write = IO.pipe

      pid = fork do
        read.close
        proxy = ProxyTestResult.new
        retval = yield proxy
        write.puts [Marshal.dump([retval, proxy])].pack("m")
        exit!
      end

      write.close
      result = read.read
      Process.wait2(pid)
      return result.unpack("m")[0]
    end