Handling signals to abort operation. More...
Functions | |
void | signals_init (void) |
void | signals_block (void) |
void | signals_unblock (void) |
Unblock the signals blocked by signals_block(). | |
void | signals_exit (void) |
Variables | |
volatile sig_atomic_t | user_abort |
Handling signals to abort operation.
void signals_init | ( | void | ) |
Initialize the signal handler, which will set user_abort to true when user e.g. presses C-c.
References hooked_signals, message_progress_sigs, message_signal_handler(), and signals_are_initialized.
void signals_block | ( | void | ) |
Block the signals which don't have SA_RESTART and which would just set user_abort to true. This is handy when we don't want to handle EINTR and don't want SA_RESTART either.
References hooked_signals, signals_are_initialized, and signals_block_count.
Referenced by io_close(), io_open_dest(), io_open_src(), io_open_src_real(), message_progress_update(), and print_filename().
void signals_unblock | ( | void | ) |
Unblock the signals blocked by signals_block().
References hooked_signals, signals_are_initialized, and signals_block_count.
Referenced by io_close(), io_open_dest(), io_open_src(), io_open_src_real(), message_progress_update(), and print_filename().
void signals_exit | ( | void | ) |
If user has sent us a signal earlier to terminate the process, re-raise that signal to actually terminate the process.
References exit_signal, and set_exit_status().
volatile sig_atomic_t user_abort |
If this is true, we will clean up the possibly incomplete output file, return to main() as soon as practical. That is, the code needs to poll this variable in various places.
Referenced by coder_normal(), coder_passthru(), coder_run(), io_open_src_real(), and io_read().