separate out rmw actions
[model-checker.git] / cyclegraph.h
index 0bb01c4c15ec608aa06a1892103635c4973ed039..013a11a793bd9f20971a881af2c104a59e3085ec 100644 (file)
@@ -19,9 +19,11 @@ class CycleGraph {
        ~CycleGraph();
        void addEdge(const ModelAction *from, const ModelAction *to);
        bool checkForCycles();
+       bool checkForRMWViolation();
        void addRMWEdge(const ModelAction *from, const ModelAction *rmw);
 
        bool checkReachable(const ModelAction *from, const ModelAction *to);
+       void startChanges();
        void commitChanges();
        void rollbackChanges();
 
@@ -35,9 +37,11 @@ class CycleGraph {
 
        /** @brief A flag: true if this graph contains cycles */
        bool hasCycles;
-
        bool oldCycles;
 
+       bool hasRMWViolation;
+       bool oldRMWViolation;
+
        std::vector<CycleNode *> rollbackvector;
        std::vector<CycleNode *> rmwrollbackvector;
 };