mirror of
https://github.com/Z3Prover/z3
synced 2025-04-24 09:35:32 +00:00
ensure that timeouts are distinguished from other cancel events #848
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
7d8c745c89
commit
7a977f0106
10 changed files with 55 additions and 10 deletions
|
@ -18,6 +18,24 @@ Notes:
|
|||
--*/
|
||||
#include "solver/check_sat_result.h"
|
||||
|
||||
void check_sat_result::set_reason_unknown(event_handler& eh) {
|
||||
switch (eh.caller_id()) {
|
||||
case UNSET_EH_CALLER: break;
|
||||
case CTRL_C_EH_CALLER:
|
||||
set_reason_unknown("interrupted from keyboard");
|
||||
break;
|
||||
case TIMEOUT_EH_CALLER:
|
||||
set_reason_unknown("timeout");
|
||||
break;
|
||||
case RESLIMIT_EH_CALLER:
|
||||
set_reason_unknown("max. resource limit exceeded");
|
||||
break;
|
||||
case API_INTERRUPT_EH_CALLER:
|
||||
set_reason_unknown("interrupted");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
simple_check_sat_result::simple_check_sat_result(ast_manager & m):
|
||||
m_core(m),
|
||||
m_proof(m) {
|
||||
|
|
|
@ -22,6 +22,7 @@ Notes:
|
|||
#include "model/model.h"
|
||||
#include "util/lbool.h"
|
||||
#include "util/statistics.h"
|
||||
#include "util/event_handler.h"
|
||||
|
||||
/**
|
||||
\brief Abstract interface for the result of a (check-sat) like command.
|
||||
|
@ -57,6 +58,7 @@ public:
|
|||
virtual proof * get_proof() = 0;
|
||||
virtual std::string reason_unknown() const = 0;
|
||||
virtual void set_reason_unknown(char const* msg) = 0;
|
||||
void set_reason_unknown(event_handler& eh);
|
||||
virtual void get_labels(svector<symbol> & r) = 0;
|
||||
virtual ast_manager& get_manager() const = 0;
|
||||
|
||||
|
|
|
@ -89,8 +89,8 @@ private:
|
|||
m_solver->get_manager().limit().dec_cancel();
|
||||
}
|
||||
}
|
||||
virtual void operator()() {
|
||||
m_canceled = true;
|
||||
virtual void operator()(event_handler_caller_t caller_id) {
|
||||
m_canceled = true;
|
||||
m_solver->get_manager().limit().inc_cancel();
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue