Enable CPU profiling on Cygwin
* src/syssignal.h [CYGWIN] (PROFILER_CPU_SUPPORT): Revert previous change that undefined this. (SIGEV_SIGNAL): Ensure that this is defined as a macro. * src/profiler.c [CYGWIN] (timer_getoverrun): Define as a macro on Cygwin.
This commit is contained in:
parent
dc30fb9247
commit
531125e4c0
2 changed files with 13 additions and 3 deletions
|
@ -217,6 +217,12 @@ static EMACS_INT current_sampling_interval;
|
|||
|
||||
/* Signal handler for sampling profiler. */
|
||||
|
||||
/* timer_getoverrun is not implemented on Cygwin, but the following
|
||||
seems to be good enough for profiling. */
|
||||
#ifdef CYGWIN
|
||||
#define timer_getoverrun(x) 0
|
||||
#endif
|
||||
|
||||
static void
|
||||
handle_profiler_signal (int signal)
|
||||
{
|
||||
|
|
|
@ -32,13 +32,17 @@ extern void unblock_tty_out_signal (sigset_t const *);
|
|||
#define FORWARD_SIGNAL_TO_MAIN_THREAD
|
||||
#endif
|
||||
|
||||
/* On Cygwin as of 2015-06-22 SIGEV_SIGNAL is defined as an enum
|
||||
constant but not as a macro. */
|
||||
#if defined CYGWIN && !defined SIGEV_SIGNAL
|
||||
#define SIGEV_SIGNAL SIGEV_SIGNAL
|
||||
#endif
|
||||
|
||||
#if defined HAVE_TIMER_SETTIME && defined SIGEV_SIGNAL
|
||||
# define HAVE_ITIMERSPEC
|
||||
#endif
|
||||
|
||||
/* On Cygwin, setitimer does not support ITIMER_PROF, so we can't
|
||||
support CPU profiling. */
|
||||
#if (defined SIGPROF && !defined PROFILING && !defined CYGWIN \
|
||||
#if (defined SIGPROF && !defined PROFILING \
|
||||
&& (defined HAVE_SETITIMER || defined HAVE_ITIMERSPEC))
|
||||
# define PROFILER_CPU_SUPPORT
|
||||
#endif
|
||||
|
|
Loading…
Add table
Reference in a new issue