libatomic: place the proper read-value in 'atomic_load' ModelActions
authorBrian Norris <banorris@uci.edu>
Tue, 15 May 2012 17:12:04 +0000 (10:12 -0700)
committerBrian Norris <banorris@uci.edu>
Tue, 15 May 2012 17:12:04 +0000 (10:12 -0700)
Even though I was doing rudimentary loading and storing of atomic values, I
didn't properly record the value in the ModelAction. That will be confusing
soon if I don't fix it. So fix it.

libatomic.cc

index f552d93dd80a127b32a4f7ea76ec7cc3e8d5d6c6..88d7fbf79900859575b7b6d3bf1b78609caddd3b 100644 (file)
@@ -11,9 +11,10 @@ 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_NONE));
-       return obj->value;
+       model->switch_to_master(new ModelAction(ATOMIC_READ, order, obj, value));
+       return value;
 }
 
 void atomic_init(struct atomic_object *obj, int value)