Mercurial > hg > Papers > 2016 > kkb-master
view src/enqueue.c @ 12:2d6755608f67
revision
author | Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 15 Feb 2016 08:22:50 +0900 |
parents | a8c53472e1a3 |
children |
line wrap: on
line source
// allocate Element __code putQueue1(struct Context* context, struct Allocate* allocate) { allocate->size = sizeof(struct Element); allocator(context); goto meta(context, PutQueue2); } // Meta Code Gear(stub) __code putQueue1_stub(struct Context* context) { goto putQueue1(context, &context->data[Allocate]->allocate); } // write Element infomation __code putQueue2(struct Context* context, struct Element* new_element, struct Element* element, struct Queue* queue) { new_element->task = element->task; if (queue->first) goto meta(context, PutQueue3); else goto meta(context, PutQueue4); } // Meta Code Gear(stub) __code putQueue2_stub(struct Context* context) { goto putQueue2(context, &context->data[context->dataNum]->element, &context->data[Element]->element, &context->data[ActiveQueue]->queue); } // Enqueue(normal) __code putQueue3(struct Context* context, struct Queue* queue, struct Element* new_element) { struct Element* last = queue->last; last->next = new_element; queue->last = new_element; queue->count++; goto meta(context, context->next); } // Meta Code Gear(stub) __code putQueue3_stub(struct Context* context) { goto putQueue3(context, &context->data[ActiveQueue]->queue, &context->data[context->dataNum]->element); } // Enqueue(nothing element) __code putQueue4(struct Context* context, struct Queue* queue, struct Element* new_element) { queue->first = new_element; queue->last = new_element; queue->count++; goto meta(context, context->next); } // Meta Code Gear(stub) __code putQueue4_stub(struct Context* context) { goto putQueue4(context, &context->data[ActiveQueue]->queue, &context->data[context->dataNum]->element); }