action: store Promise in ModelAction
[model-checker.git] / model.cc
index e39266d41218feecb14d4fde94701c22cd2040d3..cb78f030a3ff3d730d11e6748935797d0aee4d59 100644 (file)
--- a/model.cc
+++ b/model.cc
@@ -735,10 +735,10 @@ bool ModelChecker::process_read(ModelAction *curr, bool second_part_of_rmw)
                } else if (!second_part_of_rmw) {
                        /* Read from future value */
                        struct future_value fv = curr->get_node()->get_future_value();
+                       Promise *promise = new Promise(curr, fv);
                        value = fv.value;
-                       curr->set_value(fv.value);
-                       curr->set_read_from(NULL);
-                       promises->push_back(new Promise(curr, fv));
+                       curr->set_read_from_promise(promise);
+                       promises->push_back(promise);
                }
                get_thread(curr)->set_return_value(value);
                return updated;