[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#20843: 24.5; Profiler error: "Invalid sampling interval"
From: |
Ken Brown |
Subject: |
bug#20843: 24.5; Profiler error: "Invalid sampling interval" |
Date: |
Mon, 22 Jun 2015 14:04:50 -0400 |
User-agent: |
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 |
On 6/22/2015 11:35 AM, Eli Zaretskii wrote:
Date: Sun, 21 Jun 2015 18:17:27 -0400
From: Ken Brown <kbrown@cornell.edu>
CC: sva-news@mygooglest.com, 20843@debbugs.gnu.org
If so, we cannot test this at
configure time, because it means we will have to run a program, which
is not a good idea.
So in that case, I think we should simply disable the CPU profiler on
Cygwin using "#ifndef __CYGWIN__" or some such.
Done as commit 5fac0de.
Thanks.
Also, the diagnostics should be improved, as the
wording is misleading in that case.
As it stands, profiler-cpu-start reports "Invalid sampling interval"
whenever setup_cpu_timer fails to start the timer, regardless of the
reason. I'll try to improve this.
Yes, please.
How's this:
Looks fine, but perhaps it would be cleaner to return the actual
message string or some distinctive code from setup_cpu_timer. This
would avoid the need for a global variable.
Is this better?
--- 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;
}
Ken
- bug#20843: 24.5; Profiler error: "Invalid sampling interval", (continued)
- bug#20843: 24.5; Profiler error: "Invalid sampling interval", Eli Zaretskii, 2015/06/21
- bug#20843: 24.5; Profiler error: "Invalid sampling interval", Ken Brown, 2015/06/21
- bug#20843: 24.5; Profiler error: "Invalid sampling interval", Sebastien Vauban, 2015/06/22
- bug#20843: 24.5; Profiler error: "Invalid sampling interval", Ken Brown, 2015/06/22
- bug#20843: 24.5; Profiler error: "Invalid sampling interval", Eli Zaretskii, 2015/06/22
- bug#20843: 24.5; Profiler error: "Invalid sampling interval", Ken Brown, 2015/06/22
- bug#20843: 24.5; Profiler error: "Invalid sampling interval", Ken Brown, 2015/06/22
- bug#20843: 24.5; Profiler error: "Invalid sampling interval", Sebastien Vauban, 2015/06/23
- bug#20843: 24.5; Profiler error: "Invalid sampling interval", Ken Brown, 2015/06/23
- bug#20843: 24.5; Profiler error: "Invalid sampling interval", Eli Zaretskii, 2015/06/22
- bug#20843: 24.5; Profiler error: "Invalid sampling interval",
Ken Brown <=
- bug#20843: 24.5; Profiler error: "Invalid sampling interval", Eli Zaretskii, 2015/06/22
- bug#20843: 24.5; Profiler error: "Invalid sampling interval", Ken Brown, 2015/06/22