kubo39's blog

ただの雑記です。

Ruby

プロセス起動でposix_spawnとかvforkとかを使うはなし

posix_spawn/vfork/clone(CLONE_VFORK) はメモリを共有するので速い. 速いが、親子でメモリを共有するので危険である. それでも速いのでプロセス起動で気をつけて使っている言語があり、どういう実装をしているか調べた. 前提 fork-exec間はasync-singal-saf…

FFI gemでclone(2)を試してみた

ふと思い立ってclone(2)をFFI gemを使って呼び出してみた。 コードはこんなかんじ。 require 'ffi' module LinuxClone extend FFI::Library ffi_lib 'libc.so.6' callback :f_c, [:void], :int attach_function :clone, [:f_c, :pointer, :int], :int attach…