last_fence_release(NULL),
cv(NULL),
rf_cv(NULL),
- trace_ref(NULL),
- thrdmap_ref(NULL),
- action_ref(NULL),
value(value),
type(type),
order(order),
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;
last_fence_release(NULL),
cv(NULL),
rf_cv(NULL),
- trace_ref(NULL),
- thrdmap_ref(NULL),
- action_ref(NULL),
value(value),
type(type),
order(order),
last_fence_release(NULL),
cv(NULL),
rf_cv(NULL),
- trace_ref(NULL),
- thrdmap_ref(NULL),
- action_ref(NULL),
value(value),
type(type),
order(order),
last_fence_release(NULL),
cv(NULL),
rf_cv(NULL),
- trace_ref(NULL),
- thrdmap_ref(NULL),
- action_ref(NULL),
value(value),
type(type),
order(order),
last_fence_release(NULL),
cv(NULL),
rf_cv(NULL),
- trace_ref(NULL),
- thrdmap_ref(NULL),
- action_ref(NULL),
value(value),
type(type),
order(order),
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;