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

not to work any more on linux.

llvm-svn: 86481
This commit is contained in:
Duncan Sands 2009-11-08 20:55:48 +00:00
parent a837e4db6b
commit fec62f0ef5
1 changed files with 9 additions and 3 deletions

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);
}