seq_number(ACTION_INITIAL_CLOCK)
{
/* References to NULL atomic variables can end up here */
- ASSERT(loc || type == ATOMIC_FENCE);
+ ASSERT(loc || type == ATOMIC_FENCE || type == ATOMIC_NOP);
Thread *t = thread ? thread : thread_current();
this->tid = t!= NULL ? t->get_id() : -1;
return type == ATOMIC_WRITE || type == ATOMIC_RMW || type == ATOMIC_INIT || type == NONATOMIC_WRITE;
}
+bool ModelAction::is_create() const
+{
+ return type == THREAD_CREATE || type == PTHREAD_CREATE;
+}
+
+bool ModelAction::is_free() const
+{
+ return type == READY_FREE;
+}
+
bool ModelAction::could_be_write() const
{
return is_write() || is_rmwr();