- 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);
- template <typename T>
- bool checkReachable(const ModelAction *from, const T *to) const;
+ template <typename T, typename U>
+ bool checkReachable(const T *from, const U *to) const;
CycleNode * getNode(const ModelAction *act);
CycleNode * getNode(const Promise *promise);
CycleNode * getNode_noCreate(const ModelAction *act) const;
CycleNode * getNode(const ModelAction *act);
CycleNode * getNode(const Promise *promise);
CycleNode * getNode_noCreate(const ModelAction *act) const;
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; }