Add data structure benchmarks
[c11concurrency-benchmarks.git] / cdschecker_modified_benchmarks / chase-lev-deque / deque.h
1 #ifndef DEQUE_H
2 #define DEQUE_H
3
4 #include "cds_atomic.h"
5
6 typedef struct {
7         atomic_size_t size;
8         atomic_int buffer[];
9 } Array;
10
11 typedef struct {
12         atomic_size_t top, bottom;
13         atomic_uintptr_t array; /* Atomic(Array *) */
14 } Deque;
15
16 Deque * create();
17 int take(Deque *q);
18 int steal(Deque *q);
19 void resize(Deque *q);
20 void push(Deque *q, int x);
21
22 #define EMPTY 0xffffffff
23 #define ABORT 0xfffffffe
24
25 #endif