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; return false;
} }
static void TimeOutHandler(int Sig) {
}
static void SetMemoryLimits (unsigned size) static void SetMemoryLimits (unsigned size)
{ {
#if HAVE_SYS_RESOURCE_H #if HAVE_SYS_RESOURCE_H
@ -231,11 +234,14 @@ Program::Wait(unsigned secondsToWait,
return -1; 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) { if (secondsToWait) {
memset(&Act, 0, sizeof(Act)); Act.sa_sigaction = 0;
Act.sa_handler = SIG_IGN; Act.sa_handler = TimeOutHandler;
sigemptyset(&Act.sa_mask); sigemptyset(&Act.sa_mask);
Act.sa_flags = 0;
sigaction(SIGALRM, &Act, &Old); sigaction(SIGALRM, &Act, &Old);
alarm(secondsToWait); alarm(secondsToWait);
} }