Release sequences fixup can break pretty badly if there are outstanding
promises. Solution: check for final-feasible traces before continuing to
fixup.
* the 'model_thread')
* (2) pending release sequences
* (3) pending assertions (i.e., data races)
+ * (4) no pending promises
*/
if (!pending_rel_seqs->empty() && (!next || next->is_model_thread()) &&
- !unrealizedraces.empty()) {
+ isfinalfeasible() && !unrealizedraces.empty()) {
printf("*** WARNING: release sequence fixup action (%zu pending release seuqences) ***\n",
pending_rel_seqs->size());
ModelAction *fixup = new ModelAction(MODEL_FIXUP_RELSEQ,