summaryrefslogtreecommitdiff
path: root/app/relay/runner.js
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2018-06-16 13:00:28 +0200
committerJules Laplace <julescarbon@gmail.com>2018-06-16 13:00:28 +0200
commit6d9ec5ad69071366332944b267a6bbdfbaa82d41 (patch)
tree01fbe0ec11d94b4e97e264fa85ecfc2b225d83cf /app/relay/runner.js
parent95d5977405c5c8f8908dede7dedae1ea68a679f5 (diff)
new queue
Diffstat (limited to 'app/relay/runner.js')
-rw-r--r--app/relay/runner.js27
1 files changed, 20 insertions, 7 deletions
diff --git a/app/relay/runner.js b/app/relay/runner.js
index a449a6c..809de7a 100644
--- a/app/relay/runner.js
+++ b/app/relay/runner.js
@@ -8,7 +8,7 @@ import uuidv1 from 'uuid/v1'
import * as fs from 'fs'
import * as path from 'path'
-import * as queue from './queue'
+import * as q from './queue'
const idle_state = { status: 'IDLE', task: {} }
@@ -212,6 +212,12 @@ export function get_processor(task){
return interpreter.gpu ? 'gpu' : 'cpu'
}
+export function get_queue(task){
+ const processor = get_processor(task)
+ if (!processor) return null
+ return (processor === 'cpu') ? q.cpu : q.gpu
+}
+
export function run_task(task, preempt=false, watch=false){
if (! task) return null
const module = modules[task.module]
@@ -338,12 +344,19 @@ export function start_queue(){
}
export function run_next_task(){
- if (queue.is_active()) {
- console.log(queue.list_tasks())
- const task = queue.get_next_task()
- return run_task(task, false, true)
- }
- return { status: 'not active' }
+ const status = [q.cpu, q.gpu].map(queue => {
+ const status = queue.processor === 'gpu' ? state.current_gpu_task.status : state.current_cpu_task.status
+ console.log(queue.is_active(), status)
+ if (queue.is_active() && status === 'IDLE') {
+ console.log(queue.processor, "is free")
+ const task = queue.get_next_task()
+ return run_task(task, false, true)
+ } else {
+ console.log(queue.processor, "is busy")
+ return { processor: queue.processor, status: 'busy' }
+ }
+ })
+ return status
}
export function stop_task(task, sigkill){