// get the processor that uses the task and give it its own queue! 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 } } export const cpu = new Queue('cpu') export const gpu = new Queue('gpu')