value(value),
type(type),
original_type(ATOMIC_NOP),
+ swap_flag(false),
order(order),
original_order(order),
seq_number(ACTION_INITIAL_CLOCK)
trace_ref(NULL),
thrdmap_ref(NULL),
action_ref(NULL),
+ func_act_ref(NULL),
value(value),
type(type),
original_type(ATOMIC_NOP),
+ swap_flag(false),
order(order),
original_order(order),
seq_number(ACTION_INITIAL_CLOCK)
trace_ref(NULL),
thrdmap_ref(NULL),
action_ref(NULL),
+ func_act_ref(NULL),
value(value),
type(type),
original_type(ATOMIC_NOP),
+ swap_flag(false),
order(order),
original_order(order),
seq_number(ACTION_INITIAL_CLOCK)
trace_ref(NULL),
thrdmap_ref(NULL),
action_ref(NULL),
+ func_act_ref(NULL),
value(value),
type(type),
original_type(ATOMIC_NOP),
+ swap_flag(false),
order(order),
original_order(order),
seq_number(ACTION_INITIAL_CLOCK)
trace_ref(NULL),
thrdmap_ref(NULL),
action_ref(NULL),
+ func_act_ref(NULL),
value(value),
type(type),
original_type(ATOMIC_NOP),
+ swap_flag(false),
order(order),
original_order(order),
seq_number(ACTION_INITIAL_CLOCK)
*/
uint64_t ModelAction::get_write_value() const
{
- ASSERT(is_write());
+ ASSERT(is_write() || is_free());
return value;
}
action_type_t tmp = type;
type = original_type;
original_type = tmp;
+
+ if (swap_flag)
+ swap_flag = false;
+ else
+ swap_flag = true;
}