diff options
author | Ken Brown <kbrown@cornell.edu> | 2015-06-22 15:26:44 -0400 |
---|---|---|
committer | Ken Brown <kbrown@cornell.edu> | 2015-06-22 15:26:44 -0400 |
commit | dc30fb9247d5d9d98ae1c3501d3ffa90e2001a46 (patch) | |
tree | 936b1c717c4576558a54387777d033933d077fdc | |
parent | 567bf811dc83d4e2a770f602fc70df0874aa02e4 (diff) |
Improve diagnostics of profiler-cpu-start
* src/profiler.c (setup_cpu_timer): Change return type to 'int';
return -1 if the sampling interval is invalid.
(Fprofiler_cpu_start): Improve error message if 'setup_cpu_timer'
fails. (Bug#20843)
-rw-r--r-- | src/profiler.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/profiler.c b/src/profiler.c index 1b49afe033..185382c5bd 100644 --- a/src/profiler.c +++ b/src/profiler.c @@ -250,7 +250,7 @@ deliver_profiler_signal (int signal) deliver_process_signal (signal, handle_profiler_signal); } -static enum profiler_cpu_running +static int setup_cpu_timer (Lisp_Object sampling_interval) { struct sigaction action; @@ -263,7 +263,7 @@ setup_cpu_timer (Lisp_Object sampling_interval) ? ((EMACS_INT) TYPE_MAXIMUM (time_t) * billion + (billion - 1)) : EMACS_INT_MAX))) - return NOT_RUNNING; + return -1; current_sampling_interval = XINT (sampling_interval); interval = make_timespec (current_sampling_interval / billion, @@ -336,9 +336,18 @@ See also `profiler-log-size' and `profiler-max-stack-depth'. */) profiler_max_stack_depth); } - profiler_cpu_running = setup_cpu_timer (sampling_interval); - if (! profiler_cpu_running) - error ("Invalid sampling interval"); + int status = setup_cpu_timer (sampling_interval); + if (status == -1) + { + profiler_cpu_running = NOT_RUNNING; + error ("Invalid sampling interval"); + } + else + { + profiler_cpu_running = status; + if (! profiler_cpu_running) + error ("Unable to start profiler timer"); + } return Qt; } |