X-Git-Url: http://plrg.eecs.uci.edu/git/?p=model-checker-benchmarks.git;a=blobdiff_plain;f=include%2Funrelacy.h;h=c16a373b7945bf1caf142956f5545848d28ce2d6;hp=f4d75e8648c88dd6d9b7f5053dbc986ac394b9e0;hb=1c06f3210549c537772708197b8b6341f6fafe35;hpb=6e3ab697e4e1630e3f3815b59ec629288ee7a97c diff --git a/include/unrelacy.h b/include/unrelacy.h index f4d75e8..c16a373 100644 --- a/include/unrelacy.h +++ b/include/unrelacy.h @@ -1,9 +1,21 @@ +#ifndef __UNRELACY_H__ +#define __UNRELACY_H__ + #include +#include +#include +#include +#include + +#include #define $ -/* Should re-define to something meaningful */ -#define ASSERT(expr) +#define ASSERT(expr) MODEL_ASSERT(expr) +#define RL_ASSERT(expr) MODEL_ASSERT(expr) + +#define RL_NEW new +#define RL_DELETE(expr) delete expr #define mo_seqcst memory_order_relaxed #define mo_release memory_order_release @@ -13,6 +25,21 @@ namespace rl { + template + struct var { + var() { value = 0; } + var(T v) { value = v; } + var(var const& r) { value = r.value; } + ~var() { } + + void operator = (T v) { value = v; } + T operator () () { return value; } + void operator += (T v) { value += v; } + bool operator == (const struct var v) const { return value == v.value; } + + T value; + }; + class backoff_t { public: @@ -27,3 +54,5 @@ namespace rl { typedef backoff_t exp_backoff; } + +#endif /* __UNRELACY_H__ */