diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux')
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/system.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sysdeps/unix/sysv/linux/i386/system.c b/sysdeps/unix/sysv/linux/i386/system.c index c7287e473e..69eb2cd2ad 100644 --- a/sysdeps/unix/sysv/linux/i386/system.c +++ b/sysdeps/unix/sysv/linux/i386/system.c @@ -54,9 +54,11 @@ static void cancel_handler (void *arg); static void cancel_handler (void *arg) { - __kill (SIGKILL, *(pid_t *) arg); + pid_t child = *(pid_t *) arg; - TEMP_FAILURE_RETRY (__waitpid (*(pid_t *) arg, NULL, 0)); + INTERNAL_SYSCALL (kill, 2, child, SIGKILL); + + TEMP_FAILURE_RETRY (__waitpid (child, NULL, 0)); DO_LOCK (); |