model: rename isfinalfeasible -> is_feasible_prefix_ignore_relseq
authorBrian Norris <banorris@uci.edu>
Tue, 20 Nov 2012 04:33:53 +0000 (20:33 -0800)
committerBrian Norris <banorris@uci.edu>
Tue, 20 Nov 2012 04:33:53 +0000 (20:33 -0800)
This more accurately reflects its use case and the fact that it is a
slightly-weaker version of isfeasibleprefix(). Also, I integrate it into
isfeasibleprefix(), to avoid re-writing the same conditions.

model.cc
model.h

index d829582ef49ac6c9efe6053b2291a370bf9ff80e..da68074240d9ea2b416b40665ef7843d2c7df7ae 100644 (file)
--- a/model.cc
+++ b/model.cc
@@ -1214,14 +1214,17 @@ bool ModelChecker::promises_expired() const
  * This is the strongest feasibility check available.
  * @return whether the current trace (partial or complete) must be a prefix of
  * a feasible trace.
- * */
+ */
 bool ModelChecker::isfeasibleprefix() const
 {
-       return promises->size() == 0 && pending_rel_seqs->size() == 0 && !is_infeasible();
+       return pending_rel_seqs->size() == 0 && is_feasible_prefix_ignore_relseq();
 }
 
-/** Returns whether the current completed trace is feasible. */
-bool ModelChecker::isfinalfeasible() const
+/**
+ * Returns whether the current completed trace is feasible, except for pending
+ * release sequences.
+ */
+bool ModelChecker::is_feasible_prefix_ignore_relseq() const
 {
        if (DBG_ENABLED() && promises->size() != 0)
                DEBUG("Infeasible: unrevolved promises\n");
@@ -2498,7 +2501,7 @@ bool ModelChecker::take_step() {
         * (4) no pending promises
         */
        if (!pending_rel_seqs->empty() && (!next || next->is_model_thread()) &&
-                       isfinalfeasible() && !unrealizedraces.empty()) {
+                       is_feasible_prefix_ignore_relseq() && !unrealizedraces.empty()) {
                model_print("*** WARNING: release sequence fixup action (%zu pending release seuqences) ***\n",
                                pending_rel_seqs->size());
                ModelAction *fixup = new ModelAction(MODEL_FIXUP_RELSEQ,
diff --git a/model.h b/model.h
index 3f1103e543fa987164cc8d75f7c0c92779a6ff86..74866c65b6824138c09eef3400d49d6527000d27 100644 (file)
--- a/model.h
+++ b/model.h
@@ -243,7 +243,7 @@ private:
        struct execution_stats stats;
        void record_stats();
 
-       bool isfinalfeasible() const;
+       bool is_feasible_prefix_ignore_relseq() const;
        bool is_infeasible_ignoreRMW() const;
        bool is_infeasible() const;
        bool is_deadlocked() const;