+void ModelAction::copy_from_new(ModelAction *newaction) {
+ seq_number=newaction->seq_number;
+}
+
+bool ModelAction::is_mutex_op() const {
+ return type == ATOMIC_LOCK || type == ATOMIC_TRYLOCK || type == ATOMIC_UNLOCK;
+}
+
+bool ModelAction::is_lock() const {
+ return type == ATOMIC_LOCK;
+}
+
+bool ModelAction::is_unlock() const {
+ return type == ATOMIC_UNLOCK;
+}
+
+bool ModelAction::is_trylock() const {
+ return type == ATOMIC_TRYLOCK;
+}
+
+bool ModelAction::is_success_lock() const {
+ return type == ATOMIC_LOCK || (type == ATOMIC_TRYLOCK && value == VALUE_TRYSUCCESS);
+}
+
+bool ModelAction::is_failed_trylock() const {
+ return (type == ATOMIC_TRYLOCK && value == VALUE_TRYFAILED);
+}
+