X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/2b794d6940aa7dc58e297b3649b7799190d71f64..207cb73c182d432a00fef797428d3b79ab519287:/src/profiler.c diff --git a/src/profiler.c b/src/profiler.c index 461aae3e09..51580710f2 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; } }