From fd335687bcd17189a9dbfa1da7033430a837e213 Mon Sep 17 00:00:00 2001 From: Reid Spencer Date: Sun, 19 Dec 2004 17:59:33 +0000 Subject: [PATCH] For PR351: Replace RunProgramWithTimeout with an inline function that calls sys::Program::ExecuteAndWait. This is now just a convenience function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19037 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Support/SystemUtils.h | 41 +++++++++++++++--------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/include/llvm/Support/SystemUtils.h b/include/llvm/Support/SystemUtils.h index 126a54dbf8c..bf21f19611f 100644 --- a/include/llvm/Support/SystemUtils.h +++ b/include/llvm/Support/SystemUtils.h @@ -15,7 +15,7 @@ #ifndef LLVM_SUPPORT_SYSTEMUTILS_H #define LLVM_SUPPORT_SYSTEMUTILS_H -#include "llvm/System/Path.h" +#include "llvm/System/Program.h" namespace llvm { @@ -27,26 +27,27 @@ bool isStandardOutAConsole(); /// being executed. This allows us to find another LLVM tool if it is built into /// the same directory, but that directory is neither the current directory, nor /// in the PATH. If the executable cannot be found, return an empty string. -/// +/// @brief Find a named executable. sys::Path FindExecutable(const std::string &ExeName, - const std::string &ProgramPath); - -/// RunProgramWithTimeout - This function executes the specified program, with -/// the specified null-terminated argument array, with the stdin/out/err fd's -/// redirected, with a timeout specified by the last argument. This terminates -/// the calling program if there is an error executing the specified program. -/// It returns the return value of the program, or -1 if a timeout is detected. -/// -int RunProgramWithTimeout(const std::string &ProgramPath, const char **Args, - const std::string &StdInFile = "", - const std::string &StdOutFile = "", - const std::string &StdErrFile = "", - unsigned NumSeconds = 0); - -/// ExecWait - Execute a program with the given arguments and environment and -/// wait for it to terminate. -/// -int ExecWait (const char * const argv[], const char * const envp[]); + const std::string &ProgramPath); + +/// RunProgramWithTimeout - This function provides an alternate interface to the +/// sys::Program::ExecuteAndWait interface. +/// @see sys:Program::ExecuteAndWait +inline int llvm::RunProgramWithTimeout(const sys::Path &ProgramPath, + const char **Args, + const sys::Path &StdInFile, + const sys::Path &StdOutFile, + const sys::Path &StdErrFile, + unsigned NumSeconds = 0) { + const sys::Path* redirects[3]; + redirects[0] = &StdInFile; + redirects[1] = &StdOutFile; + redirects[2] = &StdErrFile; + + return + sys::Program::ExecuteAndWait(ProgramPath, Args, 0, redirects, NumSeconds); +} } // End llvm namespace -- 2.34.1