doPrint(record,file);
if (record->getType()==LOOPENTER) {
- workstack->push_back(record->getNextRecord());
+ if (record->getNextRecord()!=NULL)
+ workstack->push_back(record->getNextRecord());
workstack->push_back(record->getChildRecord());
return;
}
processRecord(record);
}
if (record->getType()==LOOPENTER) {
- workstack->push_back(record->getNextRecord());
+ if (record->getNextRecord()!=NULL)
+ workstack->push_back(record->getNextRecord());
workstack->push_back(record->getChildRecord());
return;
}
void MCExecution::threadYield() {
getOrCreateCurrRecord(YIELD, NULL, 0, 0, 8, false);
currexecpoint->incrementTop();
+ if (model->params.noexecyields) {
+ threadFinish();
+ }
}
/** @brief Thread yield. */