From a450fa75edb927b7568b8a3198f9209c6a4c7f79 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Sun, 3 Jun 2018 14:46:18 +0200 Subject: adjusting the form, calling samplernn tasks --- app/relay/runner.js | 43 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 8 deletions(-) (limited to 'app/relay/runner.js') diff --git a/app/relay/runner.js b/app/relay/runner.js index deb3aa0..741ef8a 100644 --- a/app/relay/runner.js +++ b/app/relay/runner.js @@ -63,8 +63,7 @@ export function status () { } } -export function build_params(module, task) { - const activity = module.activities[task.activity] +export function build_params(module, activity, task) { const interpreter = interpreters[activity.type] let opt_params; if (typeof activity.params === 'function') { @@ -159,7 +158,12 @@ export function run_script(task, cb) { export function run_task(task, preempt, watch){ const module = modules[task.module] if (! module) return { type: 'error', error: "No such module: " + task.module } - const { activity, interpreter, params } = build_params(module, task) + const activity = module.activities[task.activity] + run_task_with_activity(task, module, activity, preempt, watch) +} + +export function run_task_with_activity(task, module, activity, preempt, watch) { + const { interpreter, params } = build_params(module, task) if (! interpreter) return { type: 'error', error: "No such interpreter: " + activity.interpreter } if (interpreter.gpu && state.current_gpu_task.status !== 'IDLE') { @@ -218,19 +222,42 @@ export function run_task(task, preempt, watch){ if (finished) return finished = true console.log('task error', subprocess.exitCode, err) - clear_task(interpreter.gpu, task) - remote.emit('task_res', { type: 'task_error', task, err }) - set_connected(false) + finish({ + type: 'task_error', + task, err, + }) }) subprocess.on('close', () => { if (finished) return finished = true console.log('task ended', subprocess.exitCode || '') - clear_task(interpreter.gpu, task) - remote.emit('task_res', { type: 'task_finish', task }) set_connected(false) + finish({ + type: 'task_finish', + task, + }) }) + + function finish(task_res){ + remote.emit('task_res', task_res) + clear_task(interpreter.gpu, task) + set_connected(false) + // remove task from queue + // queue.remove_task(task) + if (activity.onComplete) { + return run_task_with_activity(task, module, activity.onComplete, preempt, watch) + } + return run_next_task() + } +} + +export function get_next_task(){ + // get next task from the queue... + /* + const task = queue.get_next_task() + return run_task(task) + */ } export function stop_task(task){ -- cgit v1.2.3-70-g09d2