bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: RE : Re: error and program_name


From: Jim Meyering
Subject: Re: RE : Re: error and program_name
Date: Thu, 23 Dec 2010 14:07:31 +0100

Bastien ROUCARIES wrote:
> If chdir is a problem, why not using a heavy weight approach (better safe than
> sorry particularly if gnulib is used for a lot of project):
> - fork and exec an helper for name resolution
> - pass fd using a socket
>
> It is really heavy but it is on the safe side

Expensive indeed.
We've used that approach as a fallback in a couple of other areas
(see gnulib's lib/savewd.c and its uses in coreutils:
http://git.sv.gnu.org/cgit/coreutils.git/commit/?id=b67faf329ce),
but never in functions as heavily used as openat, statat, chownat, etc.

Adding a single "stat" call to the inner loop behind "chown -R ..."
can add about 25% to the run-time duration.  Adding a fork may be
prohibitive.  The trouble is that we cannot resort to using "fork"
only when the faster f?chdir-based implementation fails, since once it
has failed it is too late.

If someone tries this, I'll be interested to see the cost it incurs.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]