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: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>