diff options
Diffstat (limited to 'src/profiler.c')
-rw-r--r-- | src/profiler.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/profiler.c b/src/profiler.c index 461aae3e09f..51580710f28 100644 --- a/src/profiler.c +++ b/src/profiler.c @@ -239,6 +239,7 @@ handle_profiler_signal (int signal) else { Lisp_Object oquit; + bool saved_pending_signals; EMACS_INT count = 1; #ifdef HAVE_ITIMERSPEC if (profiler_timer_ok) @@ -252,12 +253,15 @@ handle_profiler_signal (int signal) uses QUIT, which can call malloc, which can cause disaster in a signal handler. So inhibit QUIT. */ oquit = Vinhibit_quit; + saved_pending_signals = pending_signals; Vinhibit_quit = Qt; + pending_signals = 0; eassert (HASH_TABLE_P (cpu_log)); record_backtrace (XHASH_TABLE (cpu_log), count); Vinhibit_quit = oquit; + pending_signals = saved_pending_signals; } } |