(forkした)プロセスにオブジェクトを渡す方法

More than 1 year has passed since last update.

Marshalを使ってシリアライズしてパイプを使って渡す。
forkじゃなくて普通にプロセス間でやるときはunix domain socketなりnamed pipeなり使えば良いのかな…。試してないけど。

class Test
  attr_accessor :val
end

dump_obj = Test.new
dump_obj.val = 'test val'

read, write = IO.pipe
Marshal.dump(dump_obj, write)
write.close

pid = fork do
  load_obj = Marshal.load(read)
  p load_obj.val
  read.close
end

read.close
Process.waitpid(pid)
puts 'exit'
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.