sys_fork() / sys_getpid()

Jeremy Allison jra at samba.org
Sat Mar 24 08:11:52 MDT 2012


On Sat, Mar 24, 2012 at 02:58:19PM +0100, Volker Lendecke wrote:
> 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.

+1 from me also (and I added them originally :-).

No longer needed - thanks !


More information about the samba-technical mailing list