summaryrefslogtreecommitdiff
path: root/app/relay
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2018-06-07 20:09:50 +0200
committerJules Laplace <julescarbon@gmail.com>2018-06-07 20:09:50 +0200
commitf9ad8a4c20554bafaa5961ff44af0cec3f65fdb0 (patch)
tree56e28191be4f386001c1771aefd6f2bf4d92d7ee /app/relay
parentd35e3045c985b4cc2203cefdf520556683fe72fe (diff)
try kill
Diffstat (limited to 'app/relay')
-rw-r--r--app/relay/remote.js2
-rw-r--r--app/relay/runner.js14
2 files changed, 10 insertions, 6 deletions
diff --git a/app/relay/remote.js b/app/relay/remote.js
index 935298a..c958eab 100644
--- a/app/relay/remote.js
+++ b/app/relay/remote.js
@@ -47,7 +47,7 @@ remote.on('task', (data) => {
response = runner.run_task(data.task, data.preempt, data.watch)
break
case 'stop':
- response = runner.stop_task(data.task)
+ response = runner.stop_task(data.task, data.sigkill)
break
case 'add':
queue.add_task(data.task)
diff --git a/app/relay/runner.js b/app/relay/runner.js
index 3ad73a2..1c98977 100644
--- a/app/relay/runner.js
+++ b/app/relay/runner.js
@@ -339,23 +339,27 @@ export function run_next_task(){
}
}
-export function stop_task(task){
+export function stop_task(task, sigkill){
if (!task) return
if (task === 'cpu' || state.current_cpu_task.task.uuid === task.uuid) {
- terminate(state.current_cpu_task)
+ terminate(state.current_cpu_task, sigkill)
return { status: 'ok' }
} else if (task === 'gpu' || state.current_gpu_task.task.uuid === task.uuid) {
- terminate(state.current_gpu_task)
+ terminate(state.current_gpu_task, sigkill)
return { status: 'ok' }
}
return { error: 'no such task' }
}
-export function terminate(processor){
+export function terminate(processor, sigkill=false){
if (!processor || !processor.subprocess) {
return
}
console.log('kill pid', processor.subprocess.pid)
processor.task.cancelled = true
- kill(processor.subprocess.pid)
+ if (sigkill) {
+ kill(processor.subprocess.pid, 'SIGKILL')
+ } else {
+ kill(processor.subprocess.pid)
+ }
} \ No newline at end of file