3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-07-02 13:26:10 +00:00

fix #7603: race condition in Ctrl-C handling (#7755)

* fix #7603: race condition in Ctrl-C handling

* fix race in cancel_eh

* fix build
This commit is contained in:
Nuno Lopes 2025-08-06 22:27:28 +01:00 committed by GitHub
parent 7a8ba4b474
commit b1ab695eb6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 49 additions and 44 deletions

View file

@ -23,17 +23,9 @@ Revision History:
struct scoped_ctrl_c {
event_handler & m_cancel_eh;
bool m_first;
bool m_once;
bool m_enabled;
void (STD_CALL *m_old_handler)(int);
scoped_ctrl_c * m_old_scoped_ctrl_c;
public:
// If once == true, then the cancel_eh is invoked only at the first Ctrl-C.
// The next time, the old signal handler will take over.
// if enabled == false, then scoped_ctrl_c is a noop
scoped_ctrl_c(event_handler & eh, bool once=true, bool enabled=true);
scoped_ctrl_c(event_handler & eh, bool enabled = true);
~scoped_ctrl_c();
void reset() { m_first = true; }
};