[ovs-dev] [PATCH 03/15] fatal-signal: Initialize library upon any call to public function.
Justin Pettit
jpettit at nicira.com
Wed Mar 24 23:27:45 UTC 2010
Looks good...I guess. :-)
--Justin
On Mar 24, 2010, at 1:18 PM, Ben Pfaff wrote:
> Not calling fatal_signal_init() means that the signal handlers don't get
> registered, so the process won't clean up on fatal signals. Furthermore,
> signal_fds[0] is then 0, which means that fatal-signal_wait() waits on
> stdin, so if you are testing a program interactively and accidentally type
> something on stdin then that program's CPU usage jumps to 100%.
>
> Since poll_block() calls fatal_signal_wait() this seems like the most
> reliable solution.
> ---
> lib/fatal-signal.c | 6 +++++-
> 1 files changed, 5 insertions(+), 1 deletions(-)
>
> diff --git a/lib/fatal-signal.c b/lib/fatal-signal.c
> index 80ecfc3..f6f913e 100644
> --- a/lib/fatal-signal.c
> +++ b/lib/fatal-signal.c
> @@ -137,8 +137,11 @@ fatal_signal_handler(int sig_nr)
> void
> fatal_signal_run(void)
> {
> - int sig_nr = stored_sig_nr;
> + int sig_nr;
>
> + fatal_signal_init();
> +
> + sig_nr = stored_sig_nr;
> if (sig_nr != SIG_ATOMIC_MAX) {
> call_hooks(sig_nr);
>
> @@ -152,6 +155,7 @@ fatal_signal_run(void)
> void
> fatal_signal_wait(void)
> {
> + fatal_signal_init();
> poll_fd_wait(signal_fds[0], POLLIN);
> }
>
> --
> 1.6.6.1
>
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev_openvswitch.org
More information about the dev
mailing list