forked from OSchip/llvm-project
Add a boolean parameter to the ExecuteAndWait static function to indicated
if execution failed. ExecuteAndWait returns -1 upon an execution failure, but checking the return value isn't sufficient because the wait command may return -1 as well. This new parameter is to be used by the clang driver in a subsequent commit. Part of rdar://13362359 llvm-svn: 178087
This commit is contained in:
parent
ab003df656
commit
654190a12d
|
@ -125,7 +125,8 @@ namespace sys {
|
|||
const sys::Path** redirects = 0,
|
||||
unsigned secondsToWait = 0,
|
||||
unsigned memoryLimit = 0,
|
||||
std::string* ErrMsg = 0);
|
||||
std::string* ErrMsg = 0,
|
||||
bool *ExecutionFailed = 0);
|
||||
|
||||
/// A convenience function equivalent to Program prg; prg.Execute(..);
|
||||
/// @see Execute
|
||||
|
|
|
@ -29,12 +29,15 @@ Program::ExecuteAndWait(const Path& path,
|
|||
const Path** redirects,
|
||||
unsigned secondsToWait,
|
||||
unsigned memoryLimit,
|
||||
std::string* ErrMsg) {
|
||||
std::string* ErrMsg,
|
||||
bool *ExecutionFailed) {
|
||||
Program prg;
|
||||
if (prg.Execute(path, args, envp, redirects, memoryLimit, ErrMsg))
|
||||
if (prg.Execute(path, args, envp, redirects, memoryLimit, ErrMsg)) {
|
||||
if (ExecutionFailed) *ExecutionFailed = false;
|
||||
return prg.Wait(path, secondsToWait, ErrMsg);
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
if (ExecutionFailed) *ExecutionFailed = true;
|
||||
return -1;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
Loading…
Reference in New Issue