diff options
author | David Greene <greened@obbligato.org> | 2009-07-08 21:46:40 +0000 |
---|---|---|
committer | David Greene <greened@obbligato.org> | 2009-07-08 21:46:40 +0000 |
commit | 59629c1d8baeb7407b419cce3b59bea0bb4a2bd9 (patch) | |
tree | fa7dfd6c9d2f2c91806527bf317cec5927e81da6 /include/llvm/System | |
parent | 320671d2654a543bbeed5b62efe165430146d55e (diff) | |
download | external_llvm-59629c1d8baeb7407b419cce3b59bea0bb4a2bd9.zip external_llvm-59629c1d8baeb7407b419cce3b59bea0bb4a2bd9.tar.gz external_llvm-59629c1d8baeb7407b419cce3b59bea0bb4a2bd9.tar.bz2 |
Add an ExecuteNoWait interface to support asynchronous process spawning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75055 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/System')
-rw-r--r-- | include/llvm/System/Program.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/include/llvm/System/Program.h b/include/llvm/System/Program.h index 37f5546..49de7cf 100644 --- a/include/llvm/System/Program.h +++ b/include/llvm/System/Program.h @@ -87,6 +87,43 @@ namespace sys { static bool ChangeStdinToBinary(); static bool ChangeStdoutToBinary(); /// @} + + /// This function executes the program using the \p arguments provided and + /// waits for the program to exit. This function will block the current + /// program until the invoked program exits. The invoked program will + /// inherit the stdin, stdout, and stderr file descriptors, the + /// environment and other configuration settings of the invoking program. + /// If Path::executable() does not return true when this function is + /// called then a std::string is thrown. + /// @returns an integer result code indicating the status of the program. + /// A zero or positive value indicates the result code of the program. A + /// negative value is the signal number on which it terminated. + /// @see FindProgrambyName + /// @brief Executes the program with the given set of \p args. + static void ExecuteNoWait( + const Path& path, ///< sys::Path object providing the path of the + ///< program to be executed. It is presumed this is the result of + ///< the FindProgramByName method. + const char** args, ///< A vector of strings that are passed to the + ///< program. The first element should be the name of the program. + ///< The list *must* be terminated by a null char* entry. + const char ** env = 0, ///< An optional vector of strings to use for + ///< the program's environment. If not provided, the current program's + ///< environment will be used. + const sys::Path** redirects = 0, ///< An optional array of pointers to + ///< Paths. If the array is null, no redirection is done. The array + ///< should have a size of at least three. If the pointer in the array + ///< are not null, then the inferior process's stdin(0), stdout(1), + ///< and stderr(2) will be redirected to the corresponding Paths. + unsigned memoryLimit = 0, ///< If non-zero, this specifies max. amount + ///< of memory can be allocated by process. If memory usage will be + ///< higher limit, the child is killed and this call returns. If zero - + ///< no memory limit. + std::string* ErrMsg = 0 ///< If non-zero, provides a pointer to a string + ///< instance in which error messages will be returned. If the string + ///< is non-empty upon return an error occurred while invoking the + ///< program. + ); }; } } |