зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1122303 - nsIProcess::Run needs to handle EINTR on Mac (r=nfroyd)
This commit is contained in:
Родитель
5c867be0e8
Коммит
3337f70861
|
@ -37,6 +37,7 @@
|
|||
#include <crt_externs.h>
|
||||
#include <spawn.h>
|
||||
#include <sys/wait.h>
|
||||
#include <sys/errno.h>
|
||||
#endif
|
||||
#include <sys/types.h>
|
||||
#include <signal.h>
|
||||
|
@ -264,7 +265,11 @@ nsProcess::Monitor(void* aArg)
|
|||
#ifdef XP_MACOSX
|
||||
int exitCode = -1;
|
||||
int status = 0;
|
||||
if (waitpid(process->mPid, &status, 0) == process->mPid) {
|
||||
pid_t result;
|
||||
do {
|
||||
result = waitpid(process->mPid, &status, 0);
|
||||
} while (result == -1 && errno == EINTR);
|
||||
if (result == process->mPid) {
|
||||
if (WIFEXITED(status)) {
|
||||
exitCode = WEXITSTATUS(status);
|
||||
} else if (WIFSIGNALED(status)) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче