[Python-checkins] gh-94637: Release GIL in SSLContext.set_default_verify_paths (GH-94658)

miss-islington webhook-mailer at python.org
Sat Jul 9 12:33:19 EDT 2022


https://github.com/python/cpython/commit/a61870e19602f54a0579dd83edf334ba00ad92f6
commit: a61870e19602f54a0579dd83edf334ba00ad92f6
branch: 3.11
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: miss-islington <31488909+miss-islington at users.noreply.github.com>
date: 2022-07-09T09:33:15-07:00
summary:

gh-94637: Release GIL in SSLContext.set_default_verify_paths (GH-94658)

(cherry picked from commit 78307c7dc2352b6633138466debd4c10fae32970)

Co-authored-by: Christian Heimes <christian at python.org>

files:
A Misc/NEWS.d/next/Library/2022-07-07-15-46-55.gh-issue-94637.IYEiUM.rst
M Modules/_ssl.c

diff --git a/Misc/NEWS.d/next/Library/2022-07-07-15-46-55.gh-issue-94637.IYEiUM.rst b/Misc/NEWS.d/next/Library/2022-07-07-15-46-55.gh-issue-94637.IYEiUM.rst
new file mode 100644
index 0000000000000..20cbbcd5088b7
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2022-07-07-15-46-55.gh-issue-94637.IYEiUM.rst
@@ -0,0 +1,3 @@
+:meth:`SSLContext.set_default_verify_paths` now releases the GIL around
+``SSL_CTX_set_default_verify_paths`` call. The function call performs I/O
+and CPU intensive work.
diff --git a/Modules/_ssl.c b/Modules/_ssl.c
index 08596577086ac..6d5c0199b7883 100644
--- a/Modules/_ssl.c
+++ b/Modules/_ssl.c
@@ -4305,7 +4305,11 @@ static PyObject *
 _ssl__SSLContext_set_default_verify_paths_impl(PySSLContext *self)
 /*[clinic end generated code: output=0bee74e6e09deaaa input=35f3408021463d74]*/
 {
-    if (!SSL_CTX_set_default_verify_paths(self->ctx)) {
+    int rc;
+    Py_BEGIN_ALLOW_THREADS
+    rc = SSL_CTX_set_default_verify_paths(self->ctx);
+    Py_END_ALLOW_THREADS
+    if (!rc) {
         _setSSLError(get_state_ctx(self), NULL, 0, __FILE__, __LINE__);
         return NULL;
     }



More information about the Python-checkins mailing list