- void addEdge(const T from, const U to);
+ bool addEdge(const T *from, const U *to);
+
+ template <typename T>
+ void addRMWEdge(const T *from, const ModelAction *rmw);
void putNode(const ModelAction *act, CycleNode *node);
CycleNode * getNode(const ModelAction *act);
CycleNode * getNode(const Promise *promise);
void putNode(const ModelAction *act, CycleNode *node);
CycleNode * getNode(const ModelAction *act);
CycleNode * getNode(const Promise *promise);
void clearRMW() { hasRMW = NULL; }
const ModelAction * getAction() const { return action; }
const Promise * getPromise() const { return promise; }
void clearRMW() { hasRMW = NULL; }
const ModelAction * getAction() const { return action; }
const Promise * getPromise() const { return promise; }