diff options
Diffstat (limited to 'app/relay/queue.js')
| -rw-r--r-- | app/relay/queue.js | 62 |
1 files changed, 41 insertions, 21 deletions
diff --git a/app/relay/queue.js b/app/relay/queue.js index 9dd987a..d6e7ffe 100644 --- a/app/relay/queue.js +++ b/app/relay/queue.js @@ -1,25 +1,45 @@ // get the processor that uses the task and give it its own queue! -let queue = [] -let active = false -let status = 'waiting' - -export const is_active = () => { - if (active && queue.length) { - return true +export class Queue { + constructor(processor){ + this.a = [] + this.processor = processor + this.active = false + this.status = 'waiting' + } + is_active() { + if (this.active && this.a.length) { + return true + } + this.status = 'waiting' + this.active = false + return false + } + get_status() { + return this.status + } + activate() { + this.active = true + this.status = 'active' + } + deactivate(reason) { + this.active = false + this.status = reason || 'waiting' + } + add_task(task){ + this.a.push(task) + } + remove_task(task){ + this.a = this.a.filter(t => t.id !== task.id) + } + get_next_task(){ + return this.a.shift() + } + list_tasks(){ + return this.a } - return active = false -} -export const get_status = () => status -export const activate = () => { - active = true - status = 'active' -} -export const deactivate = reason => { - active = false - status = reason } -export const add_task = task => queue.push(task) -export const remove_task = task => queue = queue.filter(t => t.id !== task.id) -export const get_next_task = () => queue.shift() -export const list_tasks = () => queue + + +export const cpu = new Queue('cpu') +export const gpu = new Queue('gpu')
\ No newline at end of file |
