5 __thread struct RCRQueue myRCRQueue;
12 //0 would mean success
14 int enqueueRCRQueue(void * ptr, int traverserState) {
15 unsigned int oldhead=myRCRQueue.head;
16 unsigned int head=oldhead+1;
20 if (head==myRCRQueue.tail)
23 myRCRQueue.elements[oldhead].object = ptr;
24 myRCRQueue.elements[oldhead].traverserState = traverserState;
30 RCRQueueEntry * dequeueRCRQueue() {
31 unsigned int tail=myRCRQueue.tail;
32 if(myRCRQueue.head==tail)
34 RCRQueueEntry * ptr = &myRCRQueue.elements[tail];
42 int isEmptyRCRQueue() {
43 return myRCRQueue.head==myRCRQueue.tail;