merge in master
[model-checker.git] / action.cc
index 2d9186d2f812bdbbe0e7eab770e1e813b79386fe..bf55d0091a2fdb368f5a2caf9727c3f2aab61d6f 100644 (file)
--- a/action.cc
+++ b/action.cc
@@ -181,7 +181,7 @@ void ModelAction::read_from(const ModelAction *act)
        ASSERT(cv);
        reads_from = act;
        if (act != NULL && this->is_acquire()) {
-               std::vector< const ModelAction *, MyAlloc<const ModelAction *> > release_heads;
+               rel_heads_list_t release_heads;
                model->get_release_seq_heads(this, &release_heads);
                for (unsigned int i = 0; i < release_heads.size(); i++)
                        synchronize_with(release_heads[i]);
@@ -194,7 +194,7 @@ void ModelAction::read_from(const ModelAction *act)
  * @param act The ModelAction to synchronize with
  */
 void ModelAction::synchronize_with(const ModelAction *act) {
-       ASSERT(*act < *this);
+       ASSERT(*act < *this || type == THREAD_JOIN);
        model->check_promises(cv, act->cv);
        cv->merge(act->cv);
 }