Explorar el Código

Move sysconf(_SC_OPEN_MAX); out of the for() loop to avoid unneeded syscalls

Michael Vogt hace 11 años
padre
commit
1590151632
Se han modificado 1 ficheros con 2 adiciones y 1 borrados
  1. 2 1
      apt-pkg/contrib/fileutl.cc

+ 2 - 1
apt-pkg/contrib/fileutl.cc

@@ -778,8 +778,9 @@ pid_t ExecFork(std::set<int> KeepFDs)
       signal(SIGCONT,SIG_DFL);
       signal(SIGTSTP,SIG_DFL);
 
+      long ScOpenMax = sysconf(_SC_OPEN_MAX);
       // Close all of our FDs - just in case
-      for (int K = 3; K != sysconf(_SC_OPEN_MAX); K++)
+      for (int K = 3; K != ScOpenMax; K++)
       {
 	 if(KeepFDs.find(K) == KeepFDs.end())
 	    fcntl(K,F_SETFD,FD_CLOEXEC);