diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/client/system/system.component.js | 6 | ||||
| -rw-r--r-- | app/relay/remote.js | 3 | ||||
| -rw-r--r-- | app/relay/runner.js | 22 |
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 |
