model: pad the digits in exec#.dot filenames
[c11tester.git] / action.h
index 0e3f3d572792303444c2e4efa3cce73326135039..f83aec9583e230fd9fddbf10676b7b73113faa8e 100644 (file)
--- a/action.h
+++ b/action.h
@@ -24,6 +24,8 @@ using std::memory_order_seq_cst;
                hence by iteself does not indicate no value. */
 
 #define VALUE_NONE 1234567890
+#define VALUE_TRYSUCCESS 1
+#define VALUE_TRYFAILED 0
 
 /** @brief Represents an action type, identifying one of several types of
  * ModelAction */
@@ -70,6 +72,14 @@ public:
        Node * get_node() const { return node; }
        void set_node(Node *n) { node = n; }
 
+       void copy_from_new(ModelAction *newaction);
+       void set_try_lock(bool obtainedlock);
+       bool is_mutex_op() const;
+       bool is_lock() const;
+       bool is_trylock() const;
+       bool is_unlock() const;
+       bool is_success_lock() const;
+       bool is_failed_trylock() const;
        bool is_read() const;
        bool is_write() const;
        bool is_rmwr() const;
@@ -82,6 +92,7 @@ public:
        bool is_seqcst() const;
        bool same_var(const ModelAction *act) const;
        bool same_thread(const ModelAction *act) const;
+       bool is_conflicting_lock(const ModelAction *act) const;
        bool is_synchronizing(const ModelAction *act) const;
 
        void create_cv(const ModelAction *parent = NULL);