Revert commit 81144, and add a comment. It caused bugpoint timeouts

not to work any more on linux.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86481 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Duncan Sands 2009-11-08 20:55:48 +00:00
parent 9956c056c1
commit 68d29d09c6

View File

@ -121,6 +121,9 @@ static bool RedirectIO(const Path *Path, int FD, std::string* ErrMsg) {
return false;
}
static void TimeOutHandler(int Sig) {
}
static void SetMemoryLimits (unsigned size)
{
#if HAVE_SYS_RESOURCE_H
@ -231,11 +234,14 @@ Program::Wait(unsigned secondsToWait,
return -1;
}
// Install a timeout handler.
// Install a timeout handler. The handler itself does nothing, but the simple
// fact of having a handler at all causes the wait below to return with EINTR,
// unlike if we used SIG_IGN.
if (secondsToWait) {
memset(&Act, 0, sizeof(Act));
Act.sa_handler = SIG_IGN;
Act.sa_sigaction = 0;
Act.sa_handler = TimeOutHandler;
sigemptyset(&Act.sa_mask);
Act.sa_flags = 0;
sigaction(SIGALRM, &Act, &Old);
alarm(secondsToWait);
}