X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=ms-queue%2Fqueue.h;fp=ms-queue%2Fqueue.h;h=76e217ba4816dc144ce8939012bda4817520192d;hb=241ce6c4685d235cdae32e721505ec5024b8b5b3;hp=edaf3ddd1a7f4d925908e67e3a9c2f807e39c39a;hpb=e4f5d19cd0d94393277381f8aab95126f201fb26;p=model-checker-benchmarks.git diff --git a/ms-queue/queue.h b/ms-queue/queue.h index edaf3dd..76e217b 100644 --- a/ms-queue/queue.h +++ b/ms-queue/queue.h @@ -22,10 +22,13 @@ typedef struct node { typedef struct { pointer_t head; pointer_t tail; - node_t nodes[MAX_NODES + 1]; + node_t nodes[MAX_NODES + 2]; } queue_t; void init_queue(queue_t *q, int num_threads); -void enqueue(queue_t *q, unsigned int val); -bool dequeue(queue_t *q, unsigned int *retVal); +void enqueue(queue_t *q, unsigned int val, bool yield); +bool dequeue(queue_t *q, unsigned int *retVal, unsigned int *reclaimedNode); + +void simulateRecycledNodeUpdate(queue_t *q, unsigned int node); + int get_thread_num();