All pastes #896059 Raw Edit

qqq

public text v1 · immutable
·published 2008-02-08 08:59 UTC
rendered paste body
void _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;
}