diff --git a/src/sage/calculus/integration.pyx b/src/sage/calculus/integration.pyx index 999495c205e..1d5de3e8880 100644 --- a/src/sage/calculus/integration.pyx +++ b/src/sage/calculus/integration.pyx @@ -27,7 +27,7 @@ AUTHORS: # https://www.gnu.org/licenses/ # **************************************************************************** -from cysignals.signals cimport sig_on, sig_off +from cysignals.signals cimport sig_on, sig_off, sig_block, sig_unblock from memory_allocator cimport MemoryAllocator from sage.rings.real_double import RDF @@ -417,6 +417,7 @@ def numerical_integral(func, a, b=None, cdef double c_monte_carlo_f(double *t, size_t dim, void *params) noexcept: + sig_block() cdef double value cdef PyFunctionWrapper wrapper wrapper = params @@ -429,16 +430,19 @@ cdef double c_monte_carlo_f(double *t, size_t dim, void *params) noexcept: value = wrapper.the_function(*wrapper.lx, *wrapper.the_parameters) else: value = wrapper.the_function(*wrapper.lx) - except Exception as msg: - print(msg) - return 0 + except Exception as e: + print(e) + value=0 + sig_unblock() return value cdef double c_monte_carlo_ff(double *x, size_t dim, void *params) noexcept: cdef double result + sig_block() ( params).call_c(x, &result) + sig_unblock() return result