On Thu, Oct 21, 2010 at 1:03 PM, Gustavo Sverzut Barbieri <[email protected]> wrote: > On Thu, Oct 21, 2010 at 4:10 AM, Cedric BAIL <[email protected]> wrote: >> On Wed, Oct 20, 2010 at 7:20 PM, Gustavo Sverzut Barbieri >> <[email protected]> wrote: >>> On Wed, Oct 20, 2010 at 2:42 PM, Enlightenment SVN >>> <[email protected]> wrote: >>>> Log: >>>> * eio: add eio_file_chmod and eio_file_chown. >>> >>> Okay, we're in a thread, but recursive operations should use the "at" >>> variants to speed them up. Would you mind implementing them as well >>> (using your code as fallback when they are not available)? It's >>> basically dirfd(DIR *d) then use this as parameter for openat(), >>> unlinkat(), ... I'm also following systemd and see they're >>> effectively using it for good! (may also be used as a good source of >>> examples git://anongit.freedesktop.org/systemd) >> >> I am not really sure how much it could help. As we need to separate >> the listing stage from the action, so that we can send progress >> information. I will look how we can use that, but I don't expect >> something really useful here. > > still the actual operation is on the thread and recursively walking > directories is faster as a good amount of the path is already > resolved, you just incrementally use another point. If you have > /a/b/c/d/e/f, to walk to /a/b/c/d/e/f/g the kernel needs to resolve > the other paths AGAIN. With *at variants it does not.
Yes, of course, that's not my point. The problem is that I do close all ressource before listing another one, because I fear ressource consuption a lot. But maybe I am wrong and it would not be a problem. Right now the bug I would like to fix, is infinite recursion. I don't know yet how to cleanly solve that, maybe you have an idea. > I did not check the path construction, but likely you can use the > techniques such as I've used in e17 and other places: you know the > prefix size, you know NAME_MAX, then you know what to allocate before > then memcpy, bit faster than asprintf() or snprintf() + strdup(). Hehe, you didn't read the code :-) Already done ! -- Cedric BAIL ------------------------------------------------------------------------------ Nokia and AT&T present the 2010 Calling All Innovators-North America contest Create new apps & games for the Nokia N8 for consumers in U.S. and Canada $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store http://p.sf.net/sfu/nokia-dev2dev _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
