return type == ATOMIC_WRITE;
}
+bool ModelAction::is_acquire()
+{
+ switch (order) {
+ case memory_order_acquire:
+ case memory_order_acq_rel:
+ case memory_order_seq_cst:
+ return true;
+ default:
+ return false;
+ }
+}
+
+bool ModelAction::is_release()
+{
+ switch (order) {
+ case memory_order_release:
+ case memory_order_acq_rel:
+ case memory_order_seq_cst:
+ return true;
+ default:
+ return false;
+ }
+}
+
bool ModelAction::same_var(ModelAction *act)
{
return location == act->location;
bool is_read();
bool is_write();
+ bool is_acquire();
+ bool is_release();
bool same_var(ModelAction *act);
bool same_thread(ModelAction *act);
bool is_dependent(ModelAction *act);