* (e.g., ATOMIC_{READ,WRITE,RMW,LOCK}, etc.)
*
* @param curr The current action
- * @return True if synchronization was updated
+ * @return True if synchronization was updated or a thread completed
*/
bool ModelChecker::process_thread_action(ModelAction *curr)
{
- bool synchronized = false;
+ bool updated = false;
switch (curr->get_type()) {
case THREAD_CREATE: {
Thread *blocking = (Thread *)curr->get_location();
ModelAction *act = get_last_action(blocking->get_id());
curr->synchronize_with(act);
- synchronized = true;
+ updated = true; /* trigger rel-seq checks */
break;
}
case THREAD_FINISH: {
scheduler->wake(get_thread(act));
}
th->complete();
+ updated = true; /* trigger rel-seq checks */
break;
}
case THREAD_START: {
break;
}
- return synchronized;
+ return updated;
}
/**