From: Eric Wong Date: 2021-04-04T05:34:41+00:00 Subject: [ruby-core:103199] Re: [Ruby master Feature#5446] at_fork callback API jean.boussier@gmail.com wrote: > Feature #5446: at_fork callback API > https://bugs.ruby-lang.org/issues/5446#change-91273 > > But in practice many libraries prefer to check `Process.pid`, > and often end up doing so in tight loops. And they do it so > much that it end up being significant on performance profiles > in real production environments. Some things have changed in over the years: * getpid() no longer cached by glibc, so it's always a syscall, now * syscalls are more expensive due to CPU vulnerability mitigations * Ractor becoming usable/available in Ruby 3+ * system/popen/backtick use vfork() since Ruby 2.2 * JIT exists: Is there a way to expose Ruby methods/procs as C function pointers with JIT? If so, Fiddle may be usable to call pthread_atfork(3) and have it use JIT-exposed C function pointers. That would be generally useful for interacting with other C libraries, not just for pthread_atfork. Unsubscribe: