diff options
author | Julian Taylor <jtaylor.debian@googlemail.com> | 2014-05-09 15:52:04 +0200 |
---|---|---|
committer | Julian Taylor <jtaylor.debian@googlemail.com> | 2014-05-09 16:08:16 +0200 |
commit | 2d7a9eedc6570017a2e305c9ec67bab982b12810 (patch) | |
tree | a3638677aa518b4fa5dfa3d70f2395af4817f30b /numpy/core/setup.py | |
parent | 9e9ae5fa99d1ce36deb42633d1910763e0739c8e (diff) | |
download | numpy-2d7a9eedc6570017a2e305c9ec67bab982b12810.tar.gz |
BUG: fix crash when sending interrupt signal to fft functions
the SIGINT handling code must be in the GIL released section so the
longjmp does not skip the retaking.
This implies that the signal handlers must use thread local storage to
avoid a crash when sending interrupt to threaded fft functions.
Distribution of SIGINT to each threads must be handled by the
application as only the master thread receives it
Closes gh-4634
Diffstat (limited to 'numpy/core/setup.py')
-rw-r--r-- | numpy/core/setup.py | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/numpy/core/setup.py b/numpy/core/setup.py index 3cde96d77..8190c7da2 100644 --- a/numpy/core/setup.py +++ b/numpy/core/setup.py @@ -180,6 +180,11 @@ def check_math_capabilities(config, moredefs, mathlibs): call=False): moredefs.append((fname2def(fn), 1)) + for fn in ("__thread", "__declspec(thread)"): + if config.check_func(fn, decl='int %s a;' % (fn), call=False): + m = fn.replace("(", "_").replace(")", "_") + moredefs.append((fname2def(m), 1)) + # C99 functions: float and long double versions check_funcs(C99_FUNCS_SINGLE) check_funcs(C99_FUNCS_EXTENDED) |