seq_number = num;
}
+bool ModelAction::is_thread_start() const
+{
+ return type == THREAD_START;
+}
+
bool ModelAction::is_relseq_fixup() const
{
return type == MODEL_FIXUP_RELSEQ;
/**
* Update the model action's read_from action
* @param act The action to read from; should be a write
- * @return True if this read established synchronization
*/
-bool ModelAction::read_from(const ModelAction *act)
+void ModelAction::set_read_from(const ModelAction *act)
{
- ASSERT(cv);
reads_from = act;
- if (act != NULL && this->is_acquire()) {
- rel_heads_list_t release_heads;
- model->get_release_seq_heads(this, &release_heads);
- int num_heads = release_heads.size();
- for (unsigned int i = 0; i < release_heads.size(); i++)
- if (!synchronize_with(release_heads[i])) {
- model->set_bad_synchronization();
- num_heads--;
- }
- return num_heads > 0;
- }
- return false;
}
/**