LoginSignup
5
5

More than 5 years have passed since last update.

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

Posted at

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'
5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5