public:
CycleGraph();
~CycleGraph();
+ void addEdges(SnapList<ModelAction *> * edgeset, const ModelAction *to);
void addEdge(const ModelAction *from, const ModelAction *to);
+ void addEdge(const ModelAction *from, const ModelAction *to, bool forceedge);
void addRMWEdge(const ModelAction *from, const ModelAction *rmw);
bool checkReachable(const ModelAction *from, const ModelAction *to) const;
CycleNode * getNode_noCreate(const ModelAction *act) const;
SNAPSHOTALLOC
private:
- void addNodeEdge(CycleNode *fromnode, CycleNode *tonode);
+ void addNodeEdge(CycleNode *fromnode, CycleNode *tonode, bool forceedge);
void putNode(const ModelAction *act, CycleNode *node);
CycleNode * getNode(const ModelAction *act);
void addEdge(CycleNode *node);
CycleNode * getEdge(unsigned int i) const;
unsigned int getNumEdges() const;
- CycleNode * removeEdge();
bool setRMW(CycleNode *);
CycleNode * getRMW() const;
void clearRMW() { hasRMW = NULL; }
/** ClockVector for this Node. */
ClockVector *cv;
friend class CycleGraph;
+
+ /** @brief Reference count to node. */
+ int refcount;
};
#endif /* __CYCLEGRAPH_H__ */