GenSVM
gensvm_queue.c
Go to the documentation of this file.
1 
27 #include "gensvm_queue.h"
28 
39 {
40  struct GenQueue *q = Malloc(struct GenQueue, 1);
41 
42  q->tasks = NULL;
43  q->N = 0;
44  q->i = 0;
45 
46  return q;
47 }
48 
59 void gensvm_free_queue(struct GenQueue *q)
60 {
61  long i;
62  for (i=0; i<q->N; i++) {
63  gensvm_free_task(q->tasks[i]);
64  }
65  free(q->tasks);
66  free(q);
67  q = NULL;
68 }
69 
82 struct GenTask *get_next_task(struct GenQueue *q)
83 {
84  long i = q->i;
85  if (i < q->N) {
86  q->i++;
87  return q->tasks[i];
88  }
89  return NULL;
90 }
struct GenQueue * gensvm_init_queue(void)
Initialize a GenQueue structure.
Definition: gensvm_queue.c:38
long N
size of task array
Definition: gensvm_queue.h:50
long i
index used for keeping track of the queue
Definition: gensvm_queue.h:52
#define Malloc(type, size)
Definition: gensvm_memory.h:48
Simple task queue.
Definition: gensvm_queue.h:47
A structure for a single task in the queue.
Definition: gensvm_task.h:55
void gensvm_free_task(struct GenTask *t)
Free the GenTask struct.
Definition: gensvm_task.c:71
struct GenTask ** tasks
array of pointers to Task structs
Definition: gensvm_queue.h:48
Header file for gensvm_queue.c.
void gensvm_free_queue(struct GenQueue *q)
Free the GenQueue struct.
Definition: gensvm_queue.c:59
struct GenTask * get_next_task(struct GenQueue *q)
Get new GenTask from GenQueue.
Definition: gensvm_queue.c:82