[Python-checkins] closes bpo-31903: Release the GIL when calling into SystemConfiguration (GH-4178)
Miss Islington (bot)
webhook-mailer at python.org
Wed Sep 12 11:37:43 EDT 2018
https://github.com/python/cpython/commit/72c34cf6dd5fb206fe4d407ff603468af466fd2e
commit: 72c34cf6dd5fb206fe4d407ff603468af466fd2e
branch: 3.7
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: GitHub <noreply at github.com>
date: 2018-09-12T08:37:30-07:00
summary:
closes bpo-31903: Release the GIL when calling into SystemConfiguration (GH-4178)
(cherry picked from commit 4859ba0d2ce4506fddc3f55f90f8dce031b3804f)
Co-authored-by: Max Bélanger <aeromax at gmail.com>
files:
A Misc/NEWS.d/next/macOS/2017-11-01-16-53-12.bpo-31903.K6jCVG.rst
M Modules/_scproxy.c
diff --git a/Misc/NEWS.d/next/macOS/2017-11-01-16-53-12.bpo-31903.K6jCVG.rst b/Misc/NEWS.d/next/macOS/2017-11-01-16-53-12.bpo-31903.K6jCVG.rst
new file mode 100644
index 000000000000..3788112cd730
--- /dev/null
+++ b/Misc/NEWS.d/next/macOS/2017-11-01-16-53-12.bpo-31903.K6jCVG.rst
@@ -0,0 +1,2 @@
+In :mod:`_scproxy`, drop the GIL when calling into ``SystemConfiguration`` to avoid
+deadlocks.
diff --git a/Modules/_scproxy.c b/Modules/_scproxy.c
index 0e3b02879b83..c5660673c635 100644
--- a/Modules/_scproxy.c
+++ b/Modules/_scproxy.c
@@ -62,7 +62,10 @@ get_proxy_settings(PyObject* mod __attribute__((__unused__)))
PyObject* v;
int r;
+ Py_BEGIN_ALLOW_THREADS
proxyDict = SCDynamicStoreCopyProxies(NULL);
+ Py_END_ALLOW_THREADS
+
if (!proxyDict) {
Py_RETURN_NONE;
}
@@ -172,7 +175,10 @@ get_proxies(PyObject* mod __attribute__((__unused__)))
int r;
CFDictionaryRef proxyDict = NULL;
+ Py_BEGIN_ALLOW_THREADS
proxyDict = SCDynamicStoreCopyProxies(NULL);
+ Py_END_ALLOW_THREADS
+
if (proxyDict == NULL) {
return PyDict_New();
}
More information about the Python-checkins
mailing list