Mercurial > octave
diff libinterp/corefcn/sighandlers.cc @ 23101:86376c04cb66
generate signal name from number when needed in signal handler functions
* sighandlers.cc (my_friendly_exit, user_abort,
base_interrupt_manager::do_user_abort,
w32_interrupt_manager::do_user_abort,
posix_interrupt_manager::do_user_abort):
Eliminate signal name argument. Change all callers.
(my_friendly_exit): Generate signal name from number here.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 27 Jan 2017 11:04:10 -0500 |
parents | b7a24a734c37 |
children | 334119c390b3 |
line wrap: on
line diff
--- a/libinterp/corefcn/sighandlers.cc Fri Jan 27 09:17:57 2017 -0500 +++ b/libinterp/corefcn/sighandlers.cc Fri Jan 27 11:04:10 2017 -0500 @@ -82,7 +82,7 @@ // Forward declarations. static void user_terminate (int sig_number); - static void user_abort (const char *sig_name, int sig_number); + static void user_abort (int sig_number); class base_interrupt_manager @@ -103,7 +103,7 @@ virtual void do_user_terminate (int sig_number) = 0; - virtual void do_user_abort (const char *sig_name, int sig_number) = 0; + virtual void do_user_abort (int sig_number) = 0; virtual void do_raise_sigint (void) = 0; }; @@ -182,16 +182,16 @@ } } - void do_user_abort (const char *sig_name, int sig_number) + void do_user_abort (int sig_number) { bool is_interrupt_thread = (GetCurrentThreadId () == thread_id); if (is_interrupt_thread) - octave::user_abort (sig_name, sig_number); + octave::user_abort (sig_number); else { SuspendThread (thread); - octave::user_abort (sig_name, sig_number); + octave::user_abort (sig_number); ResumeThread (thread); } } @@ -249,9 +249,9 @@ octave::user_terminate (sig_number); } - void do_user_abort (const char *sig_name, int sig_number) + void do_user_abort (int sig_number) { - octave::user_abort (sig_name, sig_number); + octave::user_abort (sig_number); } void do_raise_sigint (void) @@ -281,10 +281,10 @@ instance->do_user_terminate (sig_number); } - static void user_abort (const char *sig_name, int sig_number) + static void user_abort (int sig_number) { if (instance_ok ()) - instance->do_user_abort (sig_name, sig_number); + instance->do_user_abort (sig_number); } static void raise_sigint (void) @@ -338,10 +338,10 @@ base_interrupt_manager *interrupt_manager::instance = 0; static void - my_friendly_exit (const char *sig_name, int sig_number, - bool save_vars = true) + my_friendly_exit (int sig, bool save_vars = true) { - std::cerr << "fatal: caught signal " << sig_name + std::cerr << "fatal: caught signal " + << octave_strsignal_wrapper (sig) << " -- stopping myself..." << std::endl; if (save_vars) @@ -397,9 +397,9 @@ else if (have_sigfpe && i == sigfpe) std::cerr << "warning: floating point exception" << std::endl; else if (have_sighup && i == sighup) - my_friendly_exit ("SIGHUP", sighup, Vsighup_dumps_octave_core); + my_friendly_exit (sighup, Vsighup_dumps_octave_core); else if (have_sigterm && i == sigterm) - my_friendly_exit ("SIGTERM", sigterm, Vsigterm_dumps_octave_core); + my_friendly_exit (sigterm, Vsigterm_dumps_octave_core); else if (have_sigpipe && i == sigpipe) std::cerr << "warning: broken pipe" << std::endl; } @@ -471,7 +471,7 @@ // for SIGINT only. static void - user_abort (const char *sig_name, int sig_number) + user_abort (int sig_number) { if (! octave_initialized) exit (1); @@ -525,7 +525,7 @@ std::cerr << "Press Control-C again to abort." << std::endl; if (octave_interrupt_state >= 3) - my_friendly_exit (sig_name, sig_number, true); + my_friendly_exit (sig_number, true); } } } @@ -539,7 +539,7 @@ static void sigint_handler (int sig) { - interrupt_manager::user_abort (octave_strsignal_wrapper (sig), sig); + interrupt_manager::user_abort (sig); } static void