X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=action.h;h=3e590aae7f34a115cefb9fafed941a91d3bc5f92;hb=0accacf66b9f7bb4479205a0840f208dd8da6960;hp=ffe60dc5e8e9a33e18a59123c77d6a6fa09f505b;hpb=3519c47202090f3c4a69de0e89aaa2617b17ff75;p=model-checker.git diff --git a/action.h b/action.h index ffe60dc..3e590aa 100644 --- a/action.h +++ b/action.h @@ -32,6 +32,7 @@ typedef enum action_type { THREAD_START, /**< First action in each thread */ THREAD_YIELD, /**< A thread yield action */ THREAD_JOIN, /**< A thread join action */ + THREAD_FINISH, /**< A thread completion action */ ATOMIC_READ, /**< An atomic read action */ ATOMIC_WRITE, /**< An atomic write action */ ATOMIC_RMWR, /**< The read part of an atomic RMW action */ @@ -81,7 +82,9 @@ public: void create_cv(const ModelAction *parent = NULL); ClockVector * get_cv() const { return cv; } void read_from(const ModelAction *act); + void synchronize_with(const ModelAction *act); + bool has_synchronized_with(const ModelAction *act) const; bool happens_before(const ModelAction *act) const; inline bool operator <(const ModelAction& act) const { @@ -96,7 +99,6 @@ public: MEMALLOC private: - void synchronize_with(const ModelAction *act); /** Type of action (read, write, thread create, thread yield, thread join) */ action_type type;