summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfsbs <fsbs@users.noreply.github.com>2021-10-22 14:00:46 +0000
committerfsbs <fsbs@users.noreply.github.com>2021-10-22 16:00:46 +0200
commitc75f8f5fc054c2907affe4d15b00cbbcd09ffa92 (patch)
tree460380a944438e6360ee145bdeb8ef381e62c43f
parent23afe62edb66a751604974bef5dad63edd79d3de (diff)
downloadpycurl-c75f8f5fc054c2907affe4d15b00cbbcd09ffa92.tar.gz
Add warning to multi callback GIL failure
-rw-r--r--src/multi.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/multi.c b/src/multi.c
index 1ec5e19..a138bf1 100644
--- a/src/multi.c
+++ b/src/multi.c
@@ -183,8 +183,12 @@ multi_socket_callback(CURL *easy,
/* acquire thread */
self = (CurlMultiObject *)userp;
- if (!PYCURL_ACQUIRE_THREAD_MULTI())
+ if (!PYCURL_ACQUIRE_THREAD_MULTI()) {
+ PyGILState_STATE tmp_warn_state = PyGILState_Ensure();
+ PyErr_WarnEx(PyExc_RuntimeWarning, "multi_socket_callback failed to acquire thread", 1);
+ PyGILState_Release(tmp_warn_state);
return 0;
+ }
/* check args */
if (self->s_cb == NULL)
@@ -232,8 +236,12 @@ multi_timer_callback(CURLM *multi,
/* acquire thread */
self = (CurlMultiObject *)userp;
- if (!PYCURL_ACQUIRE_THREAD_MULTI())
+ if (!PYCURL_ACQUIRE_THREAD_MULTI()) {
+ PyGILState_STATE tmp_warn_state = PyGILState_Ensure();
+ PyErr_WarnEx(PyExc_RuntimeWarning, "multi_timer_callback failed to acquire thread", 1);
+ PyGILState_Release(tmp_warn_state);
return ret;
+ }
/* check args */
if (self->t_cb == NULL)