action: utilize release sequence(s) for synchronization
[cdsspec-compiler.git] / model.h
diff --git a/model.h b/model.h
index e8a3efcdfe8266661916f36e989b410cbf1c7405..dea744c8bda1e6f61ab1b4173ae45e0bd5291ba8 100644 (file)
--- a/model.h
+++ b/model.h
@@ -61,6 +61,8 @@ public:
        bool isfeasible();
        bool isfinalfeasible();
        void check_promises(ClockVector *old_cv, ClockVector * merge_cv);
+       void get_release_seq_heads(ModelAction *act,
+                       std::vector<const ModelAction *> *release_heads);
 
        void finish_execution();
 
@@ -103,6 +105,8 @@ private:
        void post_r_modification_order(ModelAction *curr, const ModelAction *rf);
        void r_modification_order(ModelAction *curr, const ModelAction *rf);
        void w_modification_order(ModelAction *curr);
+       bool release_seq_head(const ModelAction *rf,
+                       std::vector<const ModelAction *> *release_heads) const;
 
        ModelAction *current_action;
        ModelAction *diverge;