X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=chase-lev-deque-bugfix%2Fdeque.h;fp=chase-lev-deque-bugfix%2Fdeque.h;h=bc670e7ef1e540d56b2e043fe1b11b48f396b91a;hb=595a5a86d894685c1b39ee467599654f8c2a46b5;hp=0000000000000000000000000000000000000000;hpb=a3b1bb7758e8213a6a9972311664d98ca17b1ecf;p=model-checker-benchmarks.git diff --git a/chase-lev-deque-bugfix/deque.h b/chase-lev-deque-bugfix/deque.h new file mode 100644 index 0000000..bc670e7 --- /dev/null +++ b/chase-lev-deque-bugfix/deque.h @@ -0,0 +1,22 @@ +#ifndef DEQUE_H +#define DEQUE_H + +typedef struct { + atomic_size_t size; + atomic_int buffer[]; +} Array; + +typedef struct { + atomic_size_t top, bottom; + atomic_uintptr_t array; /* Atomic(Array *) */ +} Deque; + +Deque * create(); +int take(Deque *q); +void resize(Deque *q); +void push(Deque *q, int x); + +#define EMPTY 0xffffffff +#define ABORT 0xfffffffe + +#endif