X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=clockvector.h;h=e19a2113a5e10f9860669656bb1583ec91da3620;hb=c7a6544c3f19d8c4d71b82871c832a866f8dbb79;hp=c4aabeb162829cf4883c1c546e2df0651fbfe5eb;hpb=dc59ac38010eda5d474bd26ff5e8d190489e919f;p=model-checker.git diff --git a/clockvector.h b/clockvector.h index c4aabeb..e19a211 100644 --- a/clockvector.h +++ b/clockvector.h @@ -1,8 +1,12 @@ +/** @file clockvector.h + * @brief Implements a clock vector. + */ + #ifndef __CLOCKVECTOR_H__ #define __CLOCKVECTOR_H__ -#include "threads.h" #include "mymemory.h" +#include "modeltypes.h" /* Forward declaration */ class ModelAction; @@ -11,12 +15,18 @@ class ClockVector { public: ClockVector(ClockVector *parent = NULL, ModelAction *act = NULL); ~ClockVector(); - void merge(ClockVector *cv); - bool happens_before(ModelAction *act, thread_id_t id); + bool merge(const ClockVector *cv); + bool synchronized_since(const ModelAction *act) const; + + void print() const; + modelclock_t getClock(thread_id_t thread); - MEMALLOC + SNAPSHOTALLOC private: - int *clock; + /** @brief Holds the actual clock data, as an array. */ + modelclock_t *clock; + + /** @brief The number of threads recorded in clock (i.e., its length). */ int num_threads; };