model: schedule appropriate fence backtracking points
[c11tester.git] / cyclegraph.h
index fcaa21365a6c6e5434c2f9a468e6d041036aab19..bb2ab2d87b4370065ff64fa9dfcac45e86f2ce39 100644 (file)
@@ -36,8 +36,8 @@ class CycleGraph {
        bool checkForCycles() const;
        bool checkPromise(const ModelAction *from, Promise *p) const;
 
-       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;
 
        void startChanges();
        void commitChanges();
@@ -54,6 +54,8 @@ class CycleGraph {
  private:
        bool addNodeEdge(CycleNode *fromnode, CycleNode *tonode);
        void putNode(const ModelAction *act, CycleNode *node);
+       void putNode(const Promise *promise, CycleNode *node);
+       void erasePromiseNode(const Promise *promise);
        CycleNode * getNode(const ModelAction *act);
        CycleNode * getNode(const Promise *promise);
        CycleNode * getNode_noCreate(const ModelAction *act) const;