X-Git-Url: http://plrg.eecs.uci.edu/git/?p=model-checker-benchmarks.git;a=blobdiff_plain;f=ms-queue%2Fmy_queue.h;h=edaf3ddd1a7f4d925908e67e3a9c2f807e39c39a;hp=5877a680b7c634b636af7d0b1d994b0004ce3387;hb=HEAD;hpb=6bfec4a14ed32227ccd38e85e111221d89c10d58 diff --git a/ms-queue/my_queue.h b/ms-queue/my_queue.h index 5877a68..edaf3dd 100644 --- a/ms-queue/my_queue.h +++ b/ms-queue/my_queue.h @@ -11,8 +11,8 @@ typedef atomic_ullong pointer_t; static inline void set_count(pointer *p, unsigned int val) { *p = (*p & ~COUNT_MASK) | ((pointer)val << 32); } static inline void set_ptr(pointer *p, unsigned int val) { *p = (*p & ~PTR_MASK) | val; } -static inline unsigned int get_count(pointer p) { return p & PTR_MASK; } -static inline unsigned int get_ptr(pointer p) { return (p & COUNT_MASK) >> 32; } +static inline unsigned int get_count(pointer p) { return (p & COUNT_MASK) >> 32; } +static inline unsigned int get_ptr(pointer p) { return p & PTR_MASK; } typedef struct node { unsigned int value; @@ -27,5 +27,5 @@ typedef struct { void init_queue(queue_t *q, int num_threads); void enqueue(queue_t *q, unsigned int val); -unsigned int dequeue(queue_t *q); +bool dequeue(queue_t *q, unsigned int *retVal); int get_thread_num();