+
+bool ClockVector::has_synchronized_with(const ClockVector *cv) const
+{
+ ASSERT(cv);
+ if (cv->num_threads > num_threads)
+ return false;
+ for (int i = 0; i < cv->num_threads; i++)
+ if (cv->clock[i] > clock[i])
+ return false;
+ return true;
+}
+
+/** Gets the clock corresponding to a given thread id from the clock vector. */
+modelclock_t ClockVector::getClock(thread_id_t thread) {
+ int threadid = id_to_int(thread);
+
+ if (threadid < num_threads)
+ return clock[threadid];
+ else
+ return 0;
+}
+
+/** @brief Formats and prints this ClockVector's data. */
+void ClockVector::print() const
+{
+ int i;
+ printf("CV: (");
+ for (i = 0; i < num_threads; i++)
+ printf("%2u%s", clock[i], (i == num_threads - 1) ? ")\n" : ", ");
+}