unsafe extern "C" fn signal_handler(
    signum: c_int,
    info: *mut siginfo_t,
    _data: *mut c_void
)