[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