summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2018-05-27 04:33:08 +0200
committerJules Laplace <julescarbon@gmail.com>2018-05-27 04:33:08 +0200
commit9bb63160cc48111b0a57acaed85956cb9b82c59d (patch)
tree3ae9c28679f84f0f239f3b84bac33fe4f7402bc6 /app
parent9e08754fa2b4fde9b060606fe5851f31590690d6 (diff)
stop a running process, if you have the uuid
Diffstat (limited to 'app')
-rw-r--r--app/client/system/system.component.js6
-rw-r--r--app/relay/remote.js3
-rw-r--r--app/relay/runner.js22
3 files changed, 23 insertions, 8 deletions
diff --git a/app/client/system/system.component.js b/app/client/system/system.component.js
index a663acf..2b09f38 100644
--- a/app/client/system/system.component.js
+++ b/app/client/system/system.component.js
@@ -79,15 +79,15 @@ class System extends Component {
<Group title="Test">
<Param title='CPU Test Task'>
<button onClick={() => actions.task.start_task(cpu_test_task, { preempt: true, watch: true })}>Start</button>
- <button onClick={() => actions.task.stop_task(cpu_test_task)}>Stop</button>
+ <button onClick={() => actions.task.stop_task(runner.cpu)}>Stop</button>
</Param>
<Param title='GPU Test Task'>
<button onClick={() => actions.task.start_task(gpu_test_task, { preempt: true, watch: true })}>Start</button>
- <button onClick={() => actions.task.stop_task(gpu_test_task)}>Stop</button>
+ <button onClick={() => actions.task.stop_task(runner.gpu)}>Stop</button>
</Param>
<Param title='Live Test Task'>
<button onClick={() => actions.task.start_task(live_test_task, { preempt: true, watch: true })}>Start</button>
- <button onClick={() => actions.task.stop_task(live_test_task)}>Stop</button>
+ <button onClick={() => actions.task.stop_task(runner.cpu)}>Stop</button>
</Param>
<Param title='Test Live RPC'>
<button onClick={() => actions.live.get_params()}>Get</button>
diff --git a/app/relay/remote.js b/app/relay/remote.js
index 5979c68..c66929a 100644
--- a/app/relay/remote.js
+++ b/app/relay/remote.js
@@ -46,8 +46,7 @@ remote.on('task', (data) => {
response = runner.run_task(data.task, data.preempt, data.watch)
break
case 'stop':
- break
- case 'kill':
+ response = runner.stop_task(data.task)
break
case 'add':
break
diff --git a/app/relay/runner.js b/app/relay/runner.js
index 699a343..ff32e81 100644
--- a/app/relay/runner.js
+++ b/app/relay/runner.js
@@ -37,6 +37,7 @@ function serialize_task(t){
return {
status: 'RUNNING',
task: t.task,
+ uuid: t.task.uuid,
pid: t.subprocess.pid,
}
}
@@ -51,6 +52,7 @@ function clear_task(is_gpu, task){
}
}
}
+
export function status () {
return {
cpu: serialize_task(state.current_cpu_task),
@@ -114,7 +116,7 @@ export function run_task(task, preempt, watch){
if (interpreter.gpu && state.current_gpu_task.status !== 'IDLE') {
if (preempt) {
console.log('preempting currently running GPU task')
- kill_task(state.current_gpu_task.subprocess)
+ terminate(state.current_gpu_task.subprocess)
} else {
console.log('already running GPU task :(', state.current_gpu_task.pid)
return { type: 'error', error: 'task already running on gpu' }
@@ -122,7 +124,7 @@ export function run_task(task, preempt, watch){
} else if (!interpreter.gpu && state.current_cpu_task.status !== 'IDLE') {
if (preempt) {
console.log('preempting currently running CPU task')
- kill_task(state.current_cpu_task.subprocess)
+ terminate(state.current_cpu_task.subprocess)
} else {
console.log('already running CPU task :(')
return { type: 'error', error: 'task already running on cpu' }
@@ -180,7 +182,21 @@ export function run_task(task, preempt, watch){
})
}
-export function kill_task(subprocess){
+export function stop_task(task){
+ if (state.current_cpu_task.task.uuid === task.uuid) {
+ terminate(state.current_cpu_task.subprocess)
+ return { status: 'ok' }
+ } else if (state.current_gpu_task.task.uuid === task.uuid) {
+ terminate(state.current_gpu_task.subprocess)
+ return { status: 'ok' }
+ }
+ return { error: 'no such task' }
+}
+
+export function terminate(subprocess){
+ if (!subprocess) {
+ return
+ }
console.log('kill pid', subprocess.pid)
kill(subprocess.pid)
} \ No newline at end of file