1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-23 14:42:11 +02:00

Bug 330282 - AIX spawner should kill all child processes

This commit is contained in:
Chris Recoskie 2010-11-17 16:19:38 +00:00
parent d63d948594
commit 1ca8db05d7
3 changed files with 20 additions and 5 deletions

View file

@ -249,23 +249,38 @@ Java_org_eclipse_cdt_utils_spawner_Spawner_raise(JNIEnv * env, jobject jobj,
switch (sig) { switch (sig) {
case 0: /* NOOP */ case 0: /* NOOP */
status = killpg(pid, 0);
if(status == -1) {
status = kill(pid, 0); status = kill(pid, 0);
}
break; break;
case 2: /* INTERRUPT */ case 2: /* INTERRUPT */
status = killpg(pid, SIGINT);
if(status == -1) {
status = kill(pid, SIGINT); status = kill(pid, SIGINT);
}
break; break;
case 9: /* KILL */ case 9: /* KILL */
status = killpg(pid, SIGKILL);
if(status == -1) {
status = kill(pid, SIGKILL); status = kill(pid, SIGKILL);
}
break; break;
case 15: /* TERM */ case 15: /* TERM */
status = killpg(pid, SIGTERM);
if(status == -1) {
status = kill(pid, SIGTERM); status = kill(pid, SIGTERM);
}
break; break;
default: default:
status = killpg(pid, sig); /* WHAT ?? */
if(status == -1) {
status = kill(pid, sig); /* WHAT ?? */ status = kill(pid, sig); /* WHAT ?? */
}
break; break;
} }