Inside spawn(), avoid redundant os.access() and stat() calls on commonly
authorZac Medico <zmedico@gentoo.org>
Sun, 22 Mar 2009 22:05:47 +0000 (22:05 -0000)
committerZac Medico <zmedico@gentoo.org>
Sun, 22 Mar 2009 22:05:47 +0000 (22:05 -0000)
spawned binaries such as BASH_BINARY, SANDBOX_BINARY, and FAKEROOT_BINARY.
Thanks to Piotr JaroszyƄski <peper@g.o> for reporting.

svn path=/main/trunk/; revision=13144

pym/portage/process.py

index 6f449c3d6da8b325918883acd6309d667e0b0f70..a88f5bf28f24699f968a815d556b3c47a22843ea 100644 (file)
@@ -181,7 +181,8 @@ def spawn(mycommand, env={}, opt_name=None, fd_pipes=None, returnpid=False,
        # If an absolute path to an executable file isn't given
        # search for it unless we've been told not to.
        binary = mycommand[0]
-       if (not os.path.isabs(binary) or not os.path.isfile(binary)
+       if binary not in (BASH_BINARY, SANDBOX_BINARY, FAKEROOT_BINARY) and \
+               (not os.path.isabs(binary) or not os.path.isfile(binary)
            or not os.access(binary, os.X_OK)):
                binary = path_lookup and find_binary(binary) or None
                if not binary: