summaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@gmail.com>2010-03-12 19:41:04 +0000
committerMorgan Deters <mdeters@gmail.com>2010-03-12 19:41:04 +0000
commit20b3dabb4823ede8147a08a47f8d909980414bee (patch)
tree6d6ea617bef8d840de8f8ff737e00acadb6675f9 /src/util
parent3cf73e344987c2449943ca3a97054565eb9d5726 (diff)
* Added shutdown() functions to SmtEngine, TheoryEngine, PropEngine,
DecisionEngine, and Theory. These are triggered from the SmtEngine dtor before the other engines are deleted. This is important because of potential issues with outstanding TNodes in Theory implementations (which fail if the destruction is done in the wrong order, in certain cases). * Favor "FactQueueResetter" instead of clearAssertionQueues() for resetting facts queue in Theory implementations. * Better theory-rewriting code. * Minor cleanups.
Diffstat (limited to 'src/util')
-rw-r--r--src/util/decision_engine.cpp2
-rw-r--r--src/util/decision_engine.h9
2 files changed, 10 insertions, 1 deletions
diff --git a/src/util/decision_engine.cpp b/src/util/decision_engine.cpp
index 9b6101a2a..06ea283a8 100644
--- a/src/util/decision_engine.cpp
+++ b/src/util/decision_engine.cpp
@@ -26,7 +26,7 @@ DecisionEngine::~DecisionEngine() {
* virtual in the final design (?)
*/
Node DecisionEngine::nextDecision() {
- Unreachable();
+ Unimplemented();
}
}/* CVC4 namespace */
diff --git a/src/util/decision_engine.h b/src/util/decision_engine.h
index ac9fc5ffd..fd757b734 100644
--- a/src/util/decision_engine.h
+++ b/src/util/decision_engine.h
@@ -41,6 +41,15 @@ public:
*/
virtual Node nextDecision();// = 0
+ /**
+ * This is called by SmtEngine, at shutdown time, just before
+ * destruction. It is important because there are destruction
+ * ordering issues between some parts of the system. For now,
+ * there's nothing to do here in the DecisionEngine.
+ */
+ virtual void shutdown() {
+ }
+
// TODO: design decision: decision engine should be notified of
// propagated lits, and also why(?) (so that it can make decisions
// based on the utility of various theories and various theory
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback