X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=libatomic.cc;h=88d7fbf79900859575b7b6d3bf1b78609caddd3b;hb=c876bb25f4ec30cbc0ad2929bf5b505418fbc4f1;hp=b607e222dce6c133238e0140162fa0f250c740a1;hpb=9ed7200f1ffce5963e5196aa82c2406a62a107d2;p=c11tester.git diff --git a/libatomic.cc b/libatomic.cc index b607e222..88d7fbf7 100644 --- a/libatomic.cc +++ b/libatomic.cc @@ -6,11 +6,18 @@ void atomic_store_explicit(struct atomic_object *obj, int value, memory_order or { DBG(); model->switch_to_master(new ModelAction(ATOMIC_WRITE, order, obj, value)); + obj->value = value; } 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 0; + model->switch_to_master(new ModelAction(ATOMIC_READ, order, obj, value)); + return value; +} + +void atomic_init(struct atomic_object *obj, int value) +{ + obj->value = value; }