{
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)
{
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));
+ return (int) thread_current()->get_return_value();
}
void atomic_init(struct atomic_object *obj, int value)
{
- obj->value = value;
+ DBG();
+ model->switch_to_master(new ModelAction(ATOMIC_INIT, memory_order_relaxed, obj, value));
}