williams-queue: add driver, Makefile, etc.
[model-checker-benchmarks.git] / include / unrelacy.h
1 #ifndef __UNRELACY_H__
2 #define __UNRELACY_H__
3
4 #include <stdatomic.h>
5
6 #define $
7
8 /* Should re-define to something meaningful */
9 #define ASSERT(expr)
10 #define RL_ASSERT(expr)
11
12 #define RL_NEW new
13 #define RL_DELETE(expr) delete expr
14
15 #define mo_seqcst memory_order_relaxed
16 #define mo_release memory_order_release
17 #define mo_acquire memory_order_acquire
18 #define mo_acq_rel memory_order_acq_rel
19 #define mo_relaxed memory_order_relaxed
20
21 namespace rl {
22
23         template <typename T>
24         struct var {
25                 var() { value = 0; }
26                 var(T v) { value = v; }
27                 var(var const& r) { value = r; }
28                 ~var() { }
29
30                 void operator = (T v) { value = v; }
31                 T operator () () { return value; }
32                 void operator += (T v) { value += v; }
33
34                 T value;
35         };
36
37         class backoff_t
38         {
39          public:
40                 typedef int debug_info_param;
41                 void yield(debug_info_param info) { }
42                 void yield() { }
43         };
44
45
46         typedef backoff_t backoff;
47         typedef backoff_t linear_backoff;
48         typedef backoff_t exp_backoff;
49
50 }
51
52 #endif /* __UNRELACY_H__ */