3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-15 21:38:44 +00:00

addressing race condition on interrupts

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2013-06-02 12:02:35 -07:00
parent c0895e5548
commit ec121db5c1

View file

@ -54,13 +54,19 @@ static void display_statistics() {
}
static void on_timeout() {
display_statistics();
exit(0);
#pragma omp critical (g_display_stats)
{
display_statistics();
exit(0);
}
}
static void on_ctrl_c(int) {
signal (SIGINT, SIG_DFL);
display_statistics();
#pragma omp critical (g_display_stats)
{
display_statistics();
}
raise(SIGINT);
}
@ -83,9 +89,12 @@ unsigned read_smtlib_file(char const * benchmark_file) {
}
}
display_statistics();
register_on_timeout_proc(0);
g_solver = 0;
#pragma omp critical (g_display_stats)
{
display_statistics();
register_on_timeout_proc(0);
g_solver = 0;
}
return solver.get_error_code();
}
@ -118,8 +127,12 @@ unsigned read_smtlib2_commands(char const * file_name) {
result = parse_smt2_commands(ctx, std::cin, true);
}
display_statistics();
g_cmd_context = 0;
#pragma omp critical (g_display_stats)
{
display_statistics();
g_cmd_context = 0;
}
return result ? 0 : 1;
}