diff options
Diffstat (limited to 'numpy/linalg/lapack_lite/python_xerbla.c')
-rw-r--r-- | numpy/linalg/lapack_lite/python_xerbla.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/numpy/linalg/lapack_lite/python_xerbla.c b/numpy/linalg/lapack_lite/python_xerbla.c index bc5d41f58..2296cc53f 100644 --- a/numpy/linalg/lapack_lite/python_xerbla.c +++ b/numpy/linalg/lapack_lite/python_xerbla.c @@ -26,16 +26,22 @@ int xerbla_(char *srname, integer *info) 6 for name, 4 for param. num. */ int len = 0; /* length of subroutine name*/ +#ifdef WITH_THREAD PyGILState_STATE save; +#endif while( len<6 && srname[len]!='\0' ) len++; while( len && srname[len-1]==' ' ) len--; - - PyOS_snprintf(buf, sizeof(buf), format, len, srname, *info); +#ifdef WITH_THREAD save = PyGILState_Ensure(); +#endif + PyOS_snprintf(buf, sizeof(buf), format, len, srname, *info); PyErr_SetString(PyExc_ValueError, buf); +#ifdef WITH_THREAD PyGILState_Release(save); +#endif + return 0; } |