| 670 | } |
| 671 | |
| 672 | extern "C" void signal_handler(int signal) |
| 673 | { |
| 674 | on_signal(signal); |
| 675 | if (signal_handler_t handler_fn = g_prev_sigsegv.load(std::memory_order_relaxed)) { |
| 676 | handler_fn(signal); |
| 677 | } |
| 678 | else { |
| 679 | std::exit(signal); |
| 680 | } |
| 681 | } |
| 682 | |
| 683 | #ifdef _WIN32 |
| 684 | LONG CALLBACK se_handler(PEXCEPTION_POINTERS info) |