Skip to content

Commit b5105a2

Browse files
author
BaierD
committed
Add Z3 implementation for prover based shutdown
1 parent 49a71ea commit b5105a2

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

src/org/sosy_lab/java_smt/solvers/z3/Z3AbstractProver.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import java.util.Optional;
2626
import java.util.Set;
2727
import org.checkerframework.checker.nullness.qual.Nullable;
28+
import org.sosy_lab.common.ShutdownManager;
2829
import org.sosy_lab.common.ShutdownNotifier;
2930
import org.sosy_lab.common.UniqueIdGenerator;
3031
import org.sosy_lab.common.collect.PathCopyingPersistentTreeMap;
@@ -261,4 +262,9 @@ public <R> R allSat(AllSatCallback<R> callback, List<BooleanFormula> important)
261262
throw creator.handleZ3Exception(e);
262263
}
263264
}
265+
266+
@Override
267+
protected ShutdownManager getShutdownManagerForProverImpl() throws UnsupportedOperationException {
268+
return proverShutdownManager;
269+
}
264270
}

src/org/sosy_lab/java_smt/solvers/z3/Z3TheoremProver.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class Z3TheoremProver extends Z3AbstractProver implements ProverEnvironment {
4545
Native.solverIncRef(z3context, z3solver);
4646

4747
interruptListener = reason -> Native.solverInterrupt(z3context, z3solver);
48-
shutdownNotifier.register(interruptListener);
48+
proverShutdownManager.getNotifier().register(interruptListener);
4949

5050
long z3params = Native.mkParams(z3context);
5151
Native.paramsIncRef(z3context, z3params);
@@ -192,7 +192,7 @@ public void close() {
192192
propagator.close();
193193
propagator = null;
194194
}
195-
shutdownNotifier.unregister(interruptListener);
195+
proverShutdownManager.getNotifier().unregister(interruptListener);
196196
}
197197
super.close();
198198
}

0 commit comments

Comments
 (0)