conmon: do not fail if waitpid is interrupted
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
This commit is contained in:
parent
1aa0d5da86
commit
55310f9a95
1 changed files with 5 additions and 1 deletions
|
@ -1228,8 +1228,12 @@ int main(int argc, char *argv[])
|
||||||
g_main_loop_run (main_loop);
|
g_main_loop_run (main_loop);
|
||||||
g_source_remove (terminal_watch);
|
g_source_remove (terminal_watch);
|
||||||
} else {
|
} else {
|
||||||
|
int ret;
|
||||||
/* Wait for our create child to exit with the return code. */
|
/* Wait for our create child to exit with the return code. */
|
||||||
if (waitpid(create_pid, &runtime_status, 0) < 0) {
|
do
|
||||||
|
ret = waitpid(create_pid, &runtime_status, 0);
|
||||||
|
while (ret < 0 && errno == EINTR);
|
||||||
|
if (ret < 0) {
|
||||||
int old_errno = errno;
|
int old_errno = errno;
|
||||||
kill(create_pid, SIGKILL);
|
kill(create_pid, SIGKILL);
|
||||||
errno = old_errno;
|
errno = old_errno;
|
||||||
|
|
Loading…
Reference in a new issue