mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 04:30:23 +00:00
Use 'waitpid' instead of 'wait'. Basing Program::Wait() on 'wait()' prevents it being correct within a multithreaded context.
This address: PR 5277 (Program::Wait is unsafe to call from multiple threads). Note: If waitpid() turns out to be non-portable, we can add more autoconf magic, or look into another solution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84903 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
71a5c22c2b
commit
8201ebd40b
@ -244,7 +244,7 @@ Program::Wait(unsigned secondsToWait,
|
||||
int status;
|
||||
uint64_t pid = reinterpret_cast<uint64_t>(Data_);
|
||||
pid_t child = static_cast<pid_t>(pid);
|
||||
while (wait(&status) != child)
|
||||
while (waitpid(pid, &status, 0) != child)
|
||||
if (secondsToWait && errno == EINTR) {
|
||||
// Kill the child.
|
||||
kill(child, SIGKILL);
|
||||
|
Loading…
Reference in New Issue
Block a user