int numrestarts = 0;
while (true || numrestarts < 1 || fullEffort(e) || combination(e)) {
++numrestarts;
+ d_out->safePoint();
int level = getSatContext()->getLevel();
d_getModelValCache.clear();
for (constraintIdx = 0; constraintIdx < d_modelConstraints.size(); ++constraintIdx) {
}
void safePoint() throw(theory::Interrupted, AssertionException) {
- if (d_engine->d_interrupted)
+ spendResource();
+ if (d_engine->d_interrupted) {
throw theory::Interrupted();
+ }
}
void conflict(TNode conflictNode) throw(AssertionException) {
void spendResource() throw() {
d_engine->spendResource();
}
+
void handleUserAttribute( const char* attr, theory::Theory* t ){
d_engine->handleUserAttribute( attr, t );
}