summaryrefslogtreecommitdiff
path: root/app/relay/queue.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/relay/queue.js')
-rw-r--r--app/relay/queue.js62
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