Skip to content

Commit c85042b

Browse files
author
BaierD
committed
Add new prover environments with a dedicated prover shutdown notifier to delegates
1 parent 418bc8b commit c85042b

13 files changed

+142
-45
lines changed

src/org/sosy_lab/java_smt/delegate/debugging/DebuggingBasicProverEnvironment.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import java.util.List;
1616
import java.util.Optional;
1717
import org.checkerframework.checker.nullness.qual.Nullable;
18-
import org.sosy_lab.common.ShutdownManager;
1918
import org.sosy_lab.java_smt.api.BasicProverEnvironment;
2019
import org.sosy_lab.java_smt.api.BooleanFormula;
2120
import org.sosy_lab.java_smt.api.Model;
@@ -32,11 +31,6 @@ class DebuggingBasicProverEnvironment<T> implements BasicProverEnvironment<T> {
3231
debugging = pDebugging;
3332
}
3433

35-
@Override
36-
public ShutdownManager getShutdownManagerForProver() throws UnsupportedOperationException {
37-
return delegate.getShutdownManagerForProver();
38-
}
39-
4034
@Override
4135
public void pop() {
4236
debugging.assertThreadLocal();

src/org/sosy_lab/java_smt/delegate/debugging/DebuggingOptimizationProverEnvironment.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
package org.sosy_lab.java_smt.delegate.debugging;
1010

1111
import java.util.Optional;
12-
import org.sosy_lab.common.ShutdownManager;
1312
import org.sosy_lab.common.rationals.Rational;
1413
import org.sosy_lab.java_smt.api.Formula;
1514
import org.sosy_lab.java_smt.api.OptimizationProverEnvironment;
@@ -27,11 +26,6 @@ public DebuggingOptimizationProverEnvironment(
2726
debugging = pDebugging;
2827
}
2928

30-
@Override
31-
public ShutdownManager getShutdownManagerForProver() throws UnsupportedOperationException {
32-
return delegate.getShutdownManagerForProver();
33-
}
34-
3529
@Override
3630
public int maximize(Formula objective) {
3731
debugging.assertThreadLocal();

src/org/sosy_lab/java_smt/delegate/debugging/DebuggingSolverContext.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import static com.google.common.base.Preconditions.checkNotNull;
1212

1313
import com.google.common.collect.ImmutableMap;
14+
import org.sosy_lab.common.ShutdownNotifier;
1415
import org.sosy_lab.common.configuration.Configuration;
1516
import org.sosy_lab.common.configuration.InvalidConfigurationException;
1617
import org.sosy_lab.java_smt.SolverContextFactory.Solvers;
@@ -47,6 +48,15 @@ public ProverEnvironment newProverEnvironment(ProverOptions... options) {
4748
return new DebuggingProverEnvironment(delegate.newProverEnvironment(options), debugging);
4849
}
4950

51+
@SuppressWarnings("resource")
52+
@Override
53+
public ProverEnvironment newProverEnvironment(
54+
ShutdownNotifier pProverShutdownNotifier, ProverOptions... options) {
55+
debugging.assertThreadLocal();
56+
return new DebuggingProverEnvironment(
57+
delegate.newProverEnvironment(pProverShutdownNotifier, options), debugging);
58+
}
59+
5060
@SuppressWarnings("resource")
5161
@Override
5262
public InterpolatingProverEnvironment<?> newProverEnvironmentWithInterpolation(
@@ -56,6 +66,16 @@ public InterpolatingProverEnvironment<?> newProverEnvironmentWithInterpolation(
5666
delegate.newProverEnvironmentWithInterpolation(options), debugging);
5767
}
5868

69+
@SuppressWarnings("resource")
70+
@Override
71+
public InterpolatingProverEnvironment<?> newProverEnvironmentWithInterpolation(
72+
ShutdownNotifier pProverShutdownNotifier, ProverOptions... options) {
73+
debugging.assertThreadLocal();
74+
return new DebuggingInterpolatingProverEnvironment<>(
75+
delegate.newProverEnvironmentWithInterpolation(pProverShutdownNotifier, options),
76+
debugging);
77+
}
78+
5979
@SuppressWarnings("resource")
6080
@Override
6181
public OptimizationProverEnvironment newOptimizationProverEnvironment(ProverOptions... options) {
@@ -64,6 +84,15 @@ public OptimizationProverEnvironment newOptimizationProverEnvironment(ProverOpti
6484
delegate.newOptimizationProverEnvironment(options), debugging);
6585
}
6686

87+
@SuppressWarnings("resource")
88+
@Override
89+
public OptimizationProverEnvironment newOptimizationProverEnvironment(
90+
ShutdownNotifier pProverShutdownNotifier, ProverOptions... options) {
91+
debugging.assertThreadLocal();
92+
return new DebuggingOptimizationProverEnvironment(
93+
delegate.newOptimizationProverEnvironment(pProverShutdownNotifier, options), debugging);
94+
}
95+
6796
@Override
6897
public String getVersion() {
6998
debugging.assertThreadLocal();

src/org/sosy_lab/java_smt/delegate/logging/LoggingBasicProverEnvironment.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import java.util.Optional;
1919
import java.util.logging.Level;
2020
import org.checkerframework.checker.nullness.qual.Nullable;
21-
import org.sosy_lab.common.ShutdownManager;
2221
import org.sosy_lab.common.log.LogManager;
2322
import org.sosy_lab.java_smt.api.BasicProverEnvironment;
2423
import org.sosy_lab.java_smt.api.BooleanFormula;
@@ -39,11 +38,6 @@ class LoggingBasicProverEnvironment<T> implements BasicProverEnvironment<T> {
3938
logger = checkNotNull(pLogger);
4039
}
4140

42-
@Override
43-
public ShutdownManager getShutdownManagerForProver() throws UnsupportedOperationException {
44-
return wrapped.getShutdownManagerForProver();
45-
}
46-
4741
@Override
4842
public @Nullable T push(BooleanFormula f) throws InterruptedException {
4943
logger.log(Level.FINE, "up to level " + level++);

src/org/sosy_lab/java_smt/delegate/logging/LoggingSolverContext.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import static com.google.common.base.Preconditions.checkNotNull;
1212

1313
import com.google.common.collect.ImmutableMap;
14+
import org.sosy_lab.common.ShutdownNotifier;
1415
import org.sosy_lab.common.log.LogManager;
1516
import org.sosy_lab.java_smt.SolverContextFactory.Solvers;
1617
import org.sosy_lab.java_smt.api.FormulaManager;
@@ -41,6 +42,14 @@ public ProverEnvironment newProverEnvironment(ProverOptions... pOptions) {
4142
return new LoggingProverEnvironment(logger, delegate.newProverEnvironment(pOptions));
4243
}
4344

45+
@SuppressWarnings("resource")
46+
@Override
47+
public ProverEnvironment newProverEnvironment(
48+
ShutdownNotifier pProverShutdownNotifier, ProverOptions... pOptions) {
49+
return new LoggingProverEnvironment(
50+
logger, delegate.newProverEnvironment(pProverShutdownNotifier, pOptions));
51+
}
52+
4453
@SuppressWarnings("resource")
4554
@Override
4655
public InterpolatingProverEnvironment<?> newProverEnvironmentWithInterpolation(
@@ -49,13 +58,29 @@ public InterpolatingProverEnvironment<?> newProverEnvironmentWithInterpolation(
4958
logger, delegate.newProverEnvironmentWithInterpolation(options));
5059
}
5160

61+
@SuppressWarnings("resource")
62+
@Override
63+
public InterpolatingProverEnvironment<?> newProverEnvironmentWithInterpolation(
64+
ShutdownNotifier pProverShutdownNotifier, ProverOptions... options) {
65+
return new LoggingInterpolatingProverEnvironment<>(
66+
logger, delegate.newProverEnvironmentWithInterpolation(pProverShutdownNotifier, options));
67+
}
68+
5269
@SuppressWarnings("resource")
5370
@Override
5471
public OptimizationProverEnvironment newOptimizationProverEnvironment(ProverOptions... options) {
5572
return new LoggingOptimizationProverEnvironment(
5673
logger, delegate.newOptimizationProverEnvironment(options));
5774
}
5875

76+
@SuppressWarnings("resource")
77+
@Override
78+
public OptimizationProverEnvironment newOptimizationProverEnvironment(
79+
ShutdownNotifier pProverShutdownNotifier, ProverOptions... options) {
80+
return new LoggingOptimizationProverEnvironment(
81+
logger, delegate.newOptimizationProverEnvironment(pProverShutdownNotifier, options));
82+
}
83+
5984
@Override
6085
public String getVersion() {
6186
return delegate.getVersion();

src/org/sosy_lab/java_smt/delegate/logging/PackageSanityTest.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,12 @@
99
package org.sosy_lab.java_smt.delegate.logging;
1010

1111
import com.google.common.testing.AbstractPackageSanityTests;
12+
import org.sosy_lab.common.ShutdownManager;
1213

13-
public class PackageSanityTest extends AbstractPackageSanityTests {}
14+
public class PackageSanityTest extends AbstractPackageSanityTests {
15+
16+
// WTF?
17+
{
18+
setDefault(org.sosy_lab.common.ShutdownNotifier.class, ShutdownManager.create().getNotifier());
19+
}
20+
}

src/org/sosy_lab/java_smt/delegate/statistics/StatisticsBasicProverEnvironment.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import java.util.List;
1616
import java.util.Optional;
1717
import org.checkerframework.checker.nullness.qual.Nullable;
18-
import org.sosy_lab.common.ShutdownManager;
1918
import org.sosy_lab.java_smt.api.BasicProverEnvironment;
2019
import org.sosy_lab.java_smt.api.BooleanFormula;
2120
import org.sosy_lab.java_smt.api.Model;
@@ -38,11 +37,6 @@ class StatisticsBasicProverEnvironment<T> implements BasicProverEnvironment<T> {
3837
stats.provers.getAndIncrement();
3938
}
4039

41-
@Override
42-
public ShutdownManager getShutdownManagerForProver() throws UnsupportedOperationException {
43-
return delegate.getShutdownManagerForProver();
44-
}
45-
4640
@Override
4741
public void pop() {
4842
stats.pop.getAndIncrement();

src/org/sosy_lab/java_smt/delegate/statistics/StatisticsSolverContext.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
import com.google.common.collect.ImmutableMap;
1414
import java.util.Map;
15+
import org.sosy_lab.common.ShutdownNotifier;
1516
import org.sosy_lab.java_smt.SolverContextFactory.Solvers;
1617
import org.sosy_lab.java_smt.api.FormulaManager;
1718
import org.sosy_lab.java_smt.api.InterpolatingProverEnvironment;
@@ -39,6 +40,14 @@ public ProverEnvironment newProverEnvironment(ProverOptions... pOptions) {
3940
return new StatisticsProverEnvironment(delegate.newProverEnvironment(pOptions), stats);
4041
}
4142

43+
@SuppressWarnings("resource")
44+
@Override
45+
public ProverEnvironment newProverEnvironment(
46+
ShutdownNotifier pProverShutdownNotifier, ProverOptions... pOptions) {
47+
return new StatisticsProverEnvironment(
48+
delegate.newProverEnvironment(pProverShutdownNotifier, pOptions), stats);
49+
}
50+
4251
@SuppressWarnings("resource")
4352
@Override
4453
public InterpolatingProverEnvironment<?> newProverEnvironmentWithInterpolation(
@@ -47,13 +56,29 @@ public InterpolatingProverEnvironment<?> newProverEnvironmentWithInterpolation(
4756
delegate.newProverEnvironmentWithInterpolation(pOptions), stats);
4857
}
4958

59+
@SuppressWarnings("resource")
60+
@Override
61+
public InterpolatingProverEnvironment<?> newProverEnvironmentWithInterpolation(
62+
ShutdownNotifier pProverShutdownNotifier, ProverOptions... options) {
63+
return new StatisticsInterpolatingProverEnvironment<>(
64+
delegate.newProverEnvironmentWithInterpolation(pProverShutdownNotifier, options), stats);
65+
}
66+
5067
@SuppressWarnings("resource")
5168
@Override
5269
public OptimizationProverEnvironment newOptimizationProverEnvironment(ProverOptions... pOptions) {
5370
return new StatisticsOptimizationProverEnvironment(
5471
delegate.newOptimizationProverEnvironment(pOptions), stats);
5572
}
5673

74+
@SuppressWarnings("resource")
75+
@Override
76+
public OptimizationProverEnvironment newOptimizationProverEnvironment(
77+
ShutdownNotifier pProverShutdownNotifier, ProverOptions... options) {
78+
return new StatisticsOptimizationProverEnvironment(
79+
delegate.newOptimizationProverEnvironment(pProverShutdownNotifier, options), stats);
80+
}
81+
5782
@Override
5883
public String getVersion() {
5984
return delegate.getVersion();

src/org/sosy_lab/java_smt/delegate/synchronize/SynchronizedBasicProverEnvironment.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import java.util.List;
1717
import java.util.Optional;
1818
import org.checkerframework.checker.nullness.qual.Nullable;
19-
import org.sosy_lab.common.ShutdownManager;
2019
import org.sosy_lab.java_smt.api.BasicProverEnvironment;
2120
import org.sosy_lab.java_smt.api.BooleanFormula;
2221
import org.sosy_lab.java_smt.api.Model;
@@ -34,11 +33,6 @@ class SynchronizedBasicProverEnvironment<T> implements BasicProverEnvironment<T>
3433
sync = checkNotNull(pSync);
3534
}
3635

37-
@Override
38-
public ShutdownManager getShutdownManagerForProver() throws UnsupportedOperationException {
39-
return delegate.getShutdownManagerForProver();
40-
}
41-
4236
@Override
4337
public void pop() {
4438
synchronized (sync) {

src/org/sosy_lab/java_smt/delegate/synchronize/SynchronizedBasicProverEnvironmentWithContext.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import java.util.List;
1717
import java.util.Optional;
1818
import org.checkerframework.checker.nullness.qual.Nullable;
19-
import org.sosy_lab.common.ShutdownManager;
2019
import org.sosy_lab.java_smt.api.BasicProverEnvironment;
2120
import org.sosy_lab.java_smt.api.BooleanFormula;
2221
import org.sosy_lab.java_smt.api.FormulaManager;
@@ -151,11 +150,6 @@ public <R> R allSat(AllSatCallback<R> pCallback, List<BooleanFormula> pImportant
151150
}
152151
}
153152

154-
@Override
155-
public ShutdownManager getShutdownManagerForProver() throws UnsupportedOperationException {
156-
return delegate.getShutdownManagerForProver();
157-
}
158-
159153
private class AllSatCallbackWithContext<R> implements AllSatCallback<R> {
160154

161155
private final AllSatCallback<R> delegateCallback;

0 commit comments

Comments
 (0)