From 1ca8db05d7ea16fbfd1c7ebe475d705f785e48b4 Mon Sep 17 00:00:00 2001 From: Chris Recoskie Date: Wed, 17 Nov 2010 16:19:38 +0000 Subject: [PATCH] Bug 330282 - AIX spawner should kill all child processes --- .../library/spawner.c | 25 ++++++++++++++---- .../os/aix/ppc/libpty.so | Bin 11020 -> 11283 bytes .../os/aix/ppc/libspawner.so | Bin 27227 -> 27910 bytes 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/core/org.eclipse.cdt.core.aix/library/spawner.c b/core/org.eclipse.cdt.core.aix/library/spawner.c index f07ce0221c9..b8707ca0e2b 100644 --- a/core/org.eclipse.cdt.core.aix/library/spawner.c +++ b/core/org.eclipse.cdt.core.aix/library/spawner.c @@ -249,23 +249,38 @@ Java_org_eclipse_cdt_utils_spawner_Spawner_raise(JNIEnv * env, jobject jobj, switch (sig) { case 0: /* NOOP */ - status = kill(pid, 0); + status = killpg(pid, 0); + if(status == -1) { + status = kill(pid, 0); + } break; case 2: /* INTERRUPT */ - status = kill(pid, SIGINT); + status = killpg(pid, SIGINT); + if(status == -1) { + status = kill(pid, SIGINT); + } break; case 9: /* KILL */ - status = kill(pid, SIGKILL); + status = killpg(pid, SIGKILL); + if(status == -1) { + status = kill(pid, SIGKILL); + } break; case 15: /* TERM */ - status = kill(pid, SIGTERM); + status = killpg(pid, SIGTERM); + if(status == -1) { + status = kill(pid, SIGTERM); + } break; default: - status = kill(pid, sig); /* WHAT ?? */ + status = killpg(pid, sig); /* WHAT ?? */ + if(status == -1) { + status = kill(pid, sig); /* WHAT ?? */ + } break; } diff --git a/core/org.eclipse.cdt.core.aix/os/aix/ppc/libpty.so b/core/org.eclipse.cdt.core.aix/os/aix/ppc/libpty.so index 5a777eb82de0812e88a013f7bde98b7091788679..67ad76924223727c5dda2c35cab7119e4d6fa33f 100644 GIT binary patch literal 11283 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 QVWEJro&k|li2tAXFGXlv#Q*>R literal 11020 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 J!`6GF{|~R?-F*N6