mirror of
https://github.com/Z3Prover/z3
synced 2025-10-09 09:21:56 +00:00
fix deadlock
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
b02161ef51
commit
63b4503c15
1 changed files with 9 additions and 0 deletions
|
@ -315,6 +315,7 @@ namespace smt {
|
||||||
return;
|
return;
|
||||||
m_state = state::is_sat;
|
m_state = state::is_sat;
|
||||||
p.ctx.set_model(m.translate(l2g));
|
p.ctx.set_model(m.translate(l2g));
|
||||||
|
cv.notify_all();
|
||||||
cancel_workers();
|
cancel_workers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -331,6 +332,7 @@ namespace smt {
|
||||||
SASSERT(p.ctx.m_unsat_core.empty());
|
SASSERT(p.ctx.m_unsat_core.empty());
|
||||||
for (expr* e : unsat_core)
|
for (expr* e : unsat_core)
|
||||||
p.ctx.m_unsat_core.push_back(l2g(e));
|
p.ctx.m_unsat_core.push_back(l2g(e));
|
||||||
|
cv.notify_all();
|
||||||
cancel_workers();
|
cancel_workers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -341,6 +343,7 @@ namespace smt {
|
||||||
return;
|
return;
|
||||||
m_state = state::is_exception_code;
|
m_state = state::is_exception_code;
|
||||||
m_exception_code = error_code;
|
m_exception_code = error_code;
|
||||||
|
cv.notify_all();
|
||||||
cancel_workers();
|
cancel_workers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -351,6 +354,7 @@ namespace smt {
|
||||||
return;
|
return;
|
||||||
m_state = state::is_exception_msg;
|
m_state = state::is_exception_msg;
|
||||||
m_exception_msg = msg;
|
m_exception_msg = msg;
|
||||||
|
cv.notify_all();
|
||||||
cancel_workers();
|
cancel_workers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -400,6 +404,11 @@ namespace smt {
|
||||||
cv.notify_all();
|
cv.notify_all();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (m_state != state::is_running) {
|
||||||
|
IF_VERBOSE(1, verbose_stream() << "aborting get_cube\n";);
|
||||||
|
cv.notify_all();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
cv.wait(lock);
|
cv.wait(lock);
|
||||||
}
|
}
|
||||||
IF_VERBOSE(1, m_search_tree.display(verbose_stream()); verbose_stream() << "\n";);
|
IF_VERBOSE(1, m_search_tree.display(verbose_stream()); verbose_stream() << "\n";);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue