summaryrefslogtreecommitdiff
path: root/numpy/linalg/lapack_lite/python_xerbla.c
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/linalg/lapack_lite/python_xerbla.c')
-rw-r--r--numpy/linalg/lapack_lite/python_xerbla.c10
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;
}