mirror of
https://github.com/Z3Prover/z3
synced 2025-08-21 10:41:35 +00:00
more fixes for mutexes in shell
This commit is contained in:
parent
e603bc1ea1
commit
1827f98851
9 changed files with 25 additions and 63 deletions
|
@ -17,11 +17,13 @@ Author:
|
|||
#include "util/gparams.h"
|
||||
#include <signal.h>
|
||||
|
||||
static std::mutex display_stats_mux;
|
||||
namespace {
|
||||
static std::mutex *display_stats_mux = new std::mutex;
|
||||
|
||||
static lp::lp_solver<double, double>* g_solver = nullptr;
|
||||
|
||||
static void display_statistics() {
|
||||
std::lock_guard<std::mutex> lock(*display_stats_mux);
|
||||
if (g_solver && g_solver->settings().print_statistics) {
|
||||
// TBD display relevant information about statistics
|
||||
}
|
||||
|
@ -29,15 +31,11 @@ static void display_statistics() {
|
|||
|
||||
static void STD_CALL on_ctrl_c(int) {
|
||||
signal (SIGINT, SIG_DFL);
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(display_stats_mux);
|
||||
display_statistics();
|
||||
}
|
||||
display_statistics();
|
||||
raise(SIGINT);
|
||||
}
|
||||
|
||||
static void on_timeout() {
|
||||
std::lock_guard<std::mutex> lock(display_stats_mux);
|
||||
display_statistics();
|
||||
exit(0);
|
||||
}
|
||||
|
@ -92,13 +90,12 @@ void run_solver(lp_params & params, char const * mps_file_name) {
|
|||
solver->print_model(std::cout);
|
||||
}
|
||||
|
||||
{
|
||||
display_statistics();
|
||||
register_on_timeout_proc(nullptr);
|
||||
g_solver = nullptr;
|
||||
}
|
||||
display_statistics();
|
||||
register_on_timeout_proc(nullptr);
|
||||
g_solver = nullptr;
|
||||
delete solver;
|
||||
}
|
||||
}
|
||||
|
||||
unsigned read_mps_file(char const * mps_file_name) {
|
||||
signal(SIGINT, on_ctrl_c);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue