从OSX Mojave上的多个线程(在单独的数组上)调用pyfftw的interfaces.numpy_fft.rfft
方法时,我一直遇到SIGSEV。如果使用numpy的rfft
方法,我不会遇到问题。在深入探讨之前,我很想听听是否有人遇到过这个问题,以及Python是否有一些简单的解决方法。
通过启用Faulthandler,我得到了以下堆栈跟踪:
Current thread 0x000070000ea0d000 (most recent call first):
File "/.../lib/python3.6/site-packages/pyfftw/builders/_utils.py", line 348 in __call__
File "/.../lib/python3.6/site-packages/pyfftw/interfaces/_utils.py", line 138 in _Xfftn
File "/.../lib/python3.6/site-packages/pyfftw/interfaces/numpy_fft.py", line 205 in rfft
lldb回溯:
thread #11, stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
frame #0: 0x000000012bd25627 libfftw3.3.dylib`t2fv_8 + 96
frame #1: 0x000000012bc407ce libfftw3.3.dylib`apply + 81
frame #2: 0x000000012bc7c06e libfftw3.3.dylib`apply_dit_dft + 23
frame #3: 0x000000012bc08433 pyfftw.cpython-36m-darwin.so`__pyx_f_6pyfftw_6pyfftw_4FFTW_execute + 99
frame #4: 0x000000012bc0e1b5 pyfftw.cpython-36m-darwin.so`__pyx_pw_6pyfftw_6pyfftw_4FFTW_37__call__ + 2149