3
0
Fork 0
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:
Nuno Lopes 2019-06-19 16:42:00 +01:00
parent e603bc1ea1
commit 1827f98851
9 changed files with 25 additions and 63 deletions

View file

@ -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);