rendered paste bodyvoid _enqueue(queue_head_t *q, thread_state_t *new) {
if(!q) { fprintf(stderr, "null q in _enqueue\n"); abort(); }
if(q->head) {
new->prev = q->tail;
q->tail->next = new;
q->tail = new;
}
else {
q->head = new;
q->tail = new;
new->next = NULL;
new->prev = NULL;
}
}
thread_state_t *_dequeue(queue_head_t *q) {
thread_state_t *r = NULL;
if(!q) { fprintf(stderr, "null q in _dequeue\n"); abort(); }
if(q->head) {
r = q->head;
q->head = r->next;
if(q->head == NULL) {
q->tail = NULL;
}
}
return r;
}