sys_fork() / sys_getpid()

Volker Lendecke Volker.Lendecke at SerNet.DE
Sat Mar 24 07:58:19 MDT 2012

On Sat, Mar 24, 2012 at 02:43:15PM +0100, Jelmer Vernooij wrote:
> At the moment we have two trivial wrappers for fork() and getpid() in
> lib/util/system.c. These wrappers exist so that we can cache the PID and
> avoid a system call when getpid() is called.
> Is this optimization actually still worth the trouble these days? We
> don't seem to have any regularly called code paths that need it. The
> printing code seems to use it as a simple way of identifying a single
> server in the database, but that can be worked around by just using a
> single variable there.
> Furthermore, there is the risk that we end up not updating the pid after
> a fork() - thus ending up with sys_getpid() returning the wrong pid. For
> example, our libraries are used in various applications, either directly
> or as part of e.g. openchange, which don't use sys_fork() but plain fork.
> Thoughts?

I think that can go. I think at least glibc caches that
anyway, and we try to move away from getpid to
messaging_server_id() and friends.


SerNet GmbH, Bahnhofsallee 1b, 37081 Göttingen
phone: +49-551-370000-0, fax: +49-551-370000-9
AG Göttingen, HRB 2816, GF: Dr. Johannes Loxen, mailto:kontakt at

More information about the samba-technical mailing list