model: schedule appropriate fence backtracking points
[c11tester.git] / cmodelint.cc
index 228c40f9ec8d02b1a7b9c599a6cf69fc1c4ebf78..47aef05f28a1c61e72101e171e59da02354c5f09 100644 (file)
@@ -1,10 +1,11 @@
 #include "model.h"
+#include "action.h"
 #include "cmodelint.h"
+#include "threads-model.h"
 
 /** Performs a read action.*/
 uint64_t model_read_action(void * obj, memory_order ord) {
-       model->switch_to_master(new ModelAction(ATOMIC_READ, ord, obj));
-       return thread_current()->get_return_value();
+       return model->switch_to_master(new ModelAction(ATOMIC_READ, ord, obj));
 }
 
 /** Performs a write action.*/
@@ -23,8 +24,7 @@ void model_init_action(void * obj, uint64_t val) {
  * a write.
  */
 uint64_t model_rmwr_action(void *obj, memory_order ord) {
-       model->switch_to_master(new ModelAction(ATOMIC_RMWR, ord, obj));
-       return thread_current()->get_return_value();
+       return model->switch_to_master(new ModelAction(ATOMIC_RMWR, ord, obj));
 }
 
 /** Performs the write part of a RMW action. */