libatomic: atomic_load() - use proper reads_from value
authorBrian Norris <banorris@uci.edu>
Thu, 5 Jul 2012 20:57:50 +0000 (13:57 -0700)
committerBrian Norris <banorris@uci.edu>
Sat, 7 Jul 2012 02:04:35 +0000 (19:04 -0700)
Finally utilize a return value from the model-checker, instead of
storing/retrieving a sequentially-consistent value in obj->value.

libatomic.cc

index a07653303c86348dfc5fe16fee790f137e478a11..531731966a862cacd2f704fa26163f6851cd6d52 100644 (file)
@@ -11,10 +11,9 @@ void atomic_store_explicit(struct atomic_object *obj, int value, memory_order or
 
 int atomic_load_explicit(struct atomic_object *obj, memory_order order)
 {
-       int value = obj->value;
        DBG();
-       model->switch_to_master(new ModelAction(ATOMIC_READ, order, obj, value));
-       return value;
+       model->switch_to_master(new ModelAction(ATOMIC_READ, order, obj));
+       return thread_current()->get_return_value();
 }
 
 void atomic_init(struct atomic_object *obj, int value)