view paper/src/dequeue.c @ 16:958634b9fa32

make paper directory
author Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
date Wed, 17 Feb 2016 16:59:46 +0900
parents src/dequeue.c@a8c53472e1a3
children
line wrap: on
line source

// Dequeue
__code getQueue(struct Context* context, struct Queue* queue, struct Node* node) {
    if (queue->first == 0)
        return;

    struct Element* first = queue->first;
    queue->first = first->next;
    queue->count--;
    
    context->next = GetQueue;
    stack_push(context->code_stack, &context->next);

    context->next = first->task->code;
    node->key = first->task->key;

    goto meta(context, GetTree);
}

// Meta Code Gear(stub)
__code getQueue_stub(struct Context* context) {
    goto getQueue(context,
                  &context->data[ActiveQueue]->queue,
                  &context->data[Node]->node);
}