summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2018-09-12 15:38:36 (GMT)
committerGitHub <noreply@github.com>2018-09-12 15:38:36 (GMT)
commitaa12534acff4868f6dce9e2364a66fbb0ebcb3ca (patch)
tree98e1275557aa8876765e60303011bc3efc241004
parenta00de685c11cf8bdca1f8efa7aab80552d80ddfb (diff)
downloadcpython-aa12534acff4868f6dce9e2364a66fbb0ebcb3ca.zip
cpython-aa12534acff4868f6dce9e2364a66fbb0ebcb3ca.tar.gz
cpython-aa12534acff4868f6dce9e2364a66fbb0ebcb3ca.tar.bz2
closes bpo-31903: Release the GIL when calling into SystemConfiguration (GH-4178)
(cherry picked from commit 4859ba0d2ce4506fddc3f55f90f8dce031b3804f) Co-authored-by: Max BĂ©langer <aeromax@gmail.com>
-rw-r--r--Misc/NEWS.d/next/macOS/2017-11-01-16-53-12.bpo-31903.K6jCVG.rst2
-rw-r--r--Modules/_scproxy.c6
2 files changed, 8 insertions, 0 deletions
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 0000000..3788112
--- /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 1ce4b77..e37515e 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_INCREF(Py_None);
return Py_None;
@@ -173,7 +176,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();
}