model: add is_acquire() and is_release() helper functions
[model-checker.git] / model.cc
index f0709103f10c0ecafea972e08c78a6716a109136..84b296e56b109e2a4295d312c1a7746a5267d30c 100644 (file)
--- a/model.cc
+++ b/model.cc
@@ -261,6 +261,30 @@ bool ModelAction::is_write()
        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;