summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--numpy/linalg/lapack_lite/python_xerbla.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/numpy/linalg/lapack_lite/python_xerbla.c b/numpy/linalg/lapack_lite/python_xerbla.c
index 4e5a68413..8bd069842 100644
--- a/numpy/linalg/lapack_lite/python_xerbla.c
+++ b/numpy/linalg/lapack_lite/python_xerbla.c
@@ -26,12 +26,16 @@ int xerbla_(char *srname, integer *info)
6 for name, 4 for param. num. */
int len = 0; /* length of subroutine name*/
+ PyGILState_STATE save;
+
while( len<6 && srname[len]!='\0' )
len++;
while( len && srname[len-1]==' ' )
len--;
snprintf(buf, sizeof(buf), format, len, srname, *info);
+ save = PyGILState_Ensure();
PyErr_SetString(PyExc_ValueError, buf);
+ PyGILState_Release(save);
return 0;
}