From 53fcab3a9954f8bcae15f711a640d1a50365f470 Mon Sep 17 00:00:00 2001 From: donghee yang Date: Tue, 25 Sep 2012 00:02:06 +0900 Subject: [PATCH] [Title] Added to quit sub process when canceling --- src/build_server/BuildJob.rb | 3 +++ src/build_server/CommonJob.rb | 12 ++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/build_server/BuildJob.rb b/src/build_server/BuildJob.rb index df3bbc2..553ee89 100644 --- a/src/build_server/BuildJob.rb +++ b/src/build_server/BuildJob.rb @@ -173,6 +173,9 @@ class BuildJob < CommonJob #cancel def cancel() + # kill sub process if exist? + kill_sub_process() + # cancel all its reverse job @server.jobmgr.reverse_build_jobs.each do |job| if job.get_parent_job() == self and job.cancel_state == "NONE" then diff --git a/src/build_server/CommonJob.rb b/src/build_server/CommonJob.rb index 45bcd59..7badfcf 100644 --- a/src/build_server/CommonJob.rb +++ b/src/build_server/CommonJob.rb @@ -130,7 +130,8 @@ class CommonJob #cancel public def cancel() - # do nothing + # kill sub process if exist? + kill_sub_process() end @@ -167,5 +168,12 @@ class CommonJob # do nothing end - + + protected + def kill_sub_process() + if @sub_pid != 0 then + Process.kill("TERM", @sub_pid) + Process.waitpid(@sub_pid) + end + end end -- 2.34.1