diff options
author | fsbs <fsbs@users.noreply.github.com> | 2021-10-22 14:00:46 +0000 |
---|---|---|
committer | fsbs <fsbs@users.noreply.github.com> | 2021-10-22 16:00:46 +0200 |
commit | c75f8f5fc054c2907affe4d15b00cbbcd09ffa92 (patch) | |
tree | 460380a944438e6360ee145bdeb8ef381e62c43f | |
parent | 23afe62edb66a751604974bef5dad63edd79d3de (diff) | |
download | pycurl-c75f8f5fc054c2907affe4d15b00cbbcd09ffa92.tar.gz |
Add warning to multi callback GIL failure
-rw-r--r-- | src/multi.c | 12 |
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) |